@lark-project/openclaw-lark-project 2026.3.131

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.
Files changed (368) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +80 -0
  3. package/README.zh.md +80 -0
  4. package/dist/index.js +172 -0
  5. package/dist/index.js.map +7 -0
  6. package/dist/skills/feishu-bitable/SKILL.md +248 -0
  7. package/dist/skills/feishu-bitable/references/examples.md +813 -0
  8. package/dist/skills/feishu-bitable/references/field-properties.md +763 -0
  9. package/dist/skills/feishu-bitable/references/record-values.md +911 -0
  10. package/dist/skills/feishu-calendar/SKILL.md +244 -0
  11. package/dist/skills/feishu-channel-rules/SKILL.md +18 -0
  12. package/dist/skills/feishu-channel-rules/references/markdown-syntax.md +138 -0
  13. package/dist/skills/feishu-create-doc/SKILL.md +719 -0
  14. package/dist/skills/feishu-fetch-doc/SKILL.md +93 -0
  15. package/dist/skills/feishu-im-read/SKILL.md +163 -0
  16. package/dist/skills/feishu-project/SKILL.md +122 -0
  17. package/dist/skills/feishu-task/SKILL.md +293 -0
  18. package/dist/skills/feishu-troubleshoot/SKILL.md +70 -0
  19. package/dist/skills/feishu-update-doc/SKILL.md +285 -0
  20. package/dist/src/card/builder.js +293 -0
  21. package/dist/src/card/builder.js.map +7 -0
  22. package/dist/src/card/cardkit.js +126 -0
  23. package/dist/src/card/cardkit.js.map +7 -0
  24. package/dist/src/card/flush-controller.js +107 -0
  25. package/dist/src/card/flush-controller.js.map +7 -0
  26. package/dist/src/card/markdown-style.js +57 -0
  27. package/dist/src/card/markdown-style.js.map +7 -0
  28. package/dist/src/card/reply-dispatcher-types.js +39 -0
  29. package/dist/src/card/reply-dispatcher-types.js.map +7 -0
  30. package/dist/src/card/reply-dispatcher.js +245 -0
  31. package/dist/src/card/reply-dispatcher.js.map +7 -0
  32. package/dist/src/card/reply-mode.js +29 -0
  33. package/dist/src/card/reply-mode.js.map +7 -0
  34. package/dist/src/card/streaming-card-controller.js +653 -0
  35. package/dist/src/card/streaming-card-controller.js.map +7 -0
  36. package/dist/src/card/unavailable-guard.js +76 -0
  37. package/dist/src/card/unavailable-guard.js.map +7 -0
  38. package/dist/src/channel/abort-detect.js +79 -0
  39. package/dist/src/channel/abort-detect.js.map +7 -0
  40. package/dist/src/channel/chat-queue.js +50 -0
  41. package/dist/src/channel/chat-queue.js.map +7 -0
  42. package/dist/src/channel/config-adapter.js +89 -0
  43. package/dist/src/channel/config-adapter.js.map +7 -0
  44. package/dist/src/channel/directory.js +133 -0
  45. package/dist/src/channel/directory.js.map +7 -0
  46. package/dist/src/channel/event-handlers.js +175 -0
  47. package/dist/src/channel/event-handlers.js.map +7 -0
  48. package/dist/src/channel/monitor.js +108 -0
  49. package/dist/src/channel/monitor.js.map +7 -0
  50. package/dist/src/channel/onboarding-config.js +76 -0
  51. package/dist/src/channel/onboarding-config.js.map +7 -0
  52. package/dist/src/channel/onboarding-migrate.js +55 -0
  53. package/dist/src/channel/onboarding-migrate.js.map +7 -0
  54. package/dist/src/channel/onboarding.js +285 -0
  55. package/dist/src/channel/onboarding.js.map +7 -0
  56. package/dist/src/channel/plugin.js +260 -0
  57. package/dist/src/channel/plugin.js.map +7 -0
  58. package/dist/src/channel/probe.js +14 -0
  59. package/dist/src/channel/probe.js.map +7 -0
  60. package/dist/src/channel/types.js +1 -0
  61. package/dist/src/channel/types.js.map +7 -0
  62. package/dist/src/commands/auth.js +73 -0
  63. package/dist/src/commands/auth.js.map +7 -0
  64. package/dist/src/commands/diagnose.js +658 -0
  65. package/dist/src/commands/diagnose.js.map +7 -0
  66. package/dist/src/commands/doctor.js +327 -0
  67. package/dist/src/commands/doctor.js.map +7 -0
  68. package/dist/src/commands/index.js +124 -0
  69. package/dist/src/commands/index.js.map +7 -0
  70. package/dist/src/core/accounts.js +129 -0
  71. package/dist/src/core/accounts.js.map +7 -0
  72. package/dist/src/core/agent-config.js +60 -0
  73. package/dist/src/core/agent-config.js.map +7 -0
  74. package/dist/src/core/api-error.js +55 -0
  75. package/dist/src/core/api-error.js.map +7 -0
  76. package/dist/src/core/app-owner-fallback.js +17 -0
  77. package/dist/src/core/app-owner-fallback.js.map +7 -0
  78. package/dist/src/core/app-scope-checker.js +95 -0
  79. package/dist/src/core/app-scope-checker.js.map +7 -0
  80. package/dist/src/core/auth-errors.js +120 -0
  81. package/dist/src/core/auth-errors.js.map +7 -0
  82. package/dist/src/core/chat-info-cache.js +102 -0
  83. package/dist/src/core/chat-info-cache.js.map +7 -0
  84. package/dist/src/core/config-schema.js +150 -0
  85. package/dist/src/core/config-schema.js.map +7 -0
  86. package/dist/src/core/device-flow.js +174 -0
  87. package/dist/src/core/device-flow.js.map +7 -0
  88. package/dist/src/core/feishu-fetch.js +12 -0
  89. package/dist/src/core/feishu-fetch.js.map +7 -0
  90. package/dist/src/core/footer-config.js +16 -0
  91. package/dist/src/core/footer-config.js.map +7 -0
  92. package/dist/src/core/lark-client.js +322 -0
  93. package/dist/src/core/lark-client.js.map +7 -0
  94. package/dist/src/core/lark-logger.js +92 -0
  95. package/dist/src/core/lark-logger.js.map +7 -0
  96. package/dist/src/core/lark-ticket.js +18 -0
  97. package/dist/src/core/lark-ticket.js.map +7 -0
  98. package/dist/src/core/message-unavailable.js +119 -0
  99. package/dist/src/core/message-unavailable.js.map +7 -0
  100. package/dist/src/core/owner-policy.js +25 -0
  101. package/dist/src/core/owner-policy.js.map +7 -0
  102. package/dist/src/core/permission-url.js +37 -0
  103. package/dist/src/core/permission-url.js.map +7 -0
  104. package/dist/src/core/project-auth.js +177 -0
  105. package/dist/src/core/project-auth.js.map +7 -0
  106. package/dist/src/core/project-oauth-flow.js +124 -0
  107. package/dist/src/core/project-oauth-flow.js.map +7 -0
  108. package/dist/src/core/project-token-store.js +172 -0
  109. package/dist/src/core/project-token-store.js.map +7 -0
  110. package/dist/src/core/raw-request.js +45 -0
  111. package/dist/src/core/raw-request.js.map +7 -0
  112. package/dist/src/core/scope-manager.js +62 -0
  113. package/dist/src/core/scope-manager.js.map +7 -0
  114. package/dist/src/core/security-check.js +118 -0
  115. package/dist/src/core/security-check.js.map +7 -0
  116. package/dist/src/core/shutdown-hooks.js +37 -0
  117. package/dist/src/core/shutdown-hooks.js.map +7 -0
  118. package/dist/src/core/targets.js +55 -0
  119. package/dist/src/core/targets.js.map +7 -0
  120. package/dist/src/core/token-store.js +215 -0
  121. package/dist/src/core/token-store.js.map +7 -0
  122. package/dist/src/core/tool-client.js +335 -0
  123. package/dist/src/core/tool-client.js.map +7 -0
  124. package/dist/src/core/tool-scopes.js +207 -0
  125. package/dist/src/core/tool-scopes.js.map +7 -0
  126. package/dist/src/core/tools-config.js +57 -0
  127. package/dist/src/core/tools-config.js.map +7 -0
  128. package/dist/src/core/types.js +1 -0
  129. package/dist/src/core/types.js.map +7 -0
  130. package/dist/src/core/uat-client.js +124 -0
  131. package/dist/src/core/uat-client.js.map +7 -0
  132. package/dist/src/core/version.js +27 -0
  133. package/dist/src/core/version.js.map +7 -0
  134. package/dist/src/messaging/converters/audio.js +19 -0
  135. package/dist/src/messaging/converters/audio.js.map +7 -0
  136. package/dist/src/messaging/converters/calendar.js +46 -0
  137. package/dist/src/messaging/converters/calendar.js.map +7 -0
  138. package/dist/src/messaging/converters/content-converter.js +61 -0
  139. package/dist/src/messaging/converters/content-converter.js.map +7 -0
  140. package/dist/src/messaging/converters/file.js +18 -0
  141. package/dist/src/messaging/converters/file.js.map +7 -0
  142. package/dist/src/messaging/converters/folder.js +18 -0
  143. package/dist/src/messaging/converters/folder.js.map +7 -0
  144. package/dist/src/messaging/converters/hongbao.js +14 -0
  145. package/dist/src/messaging/converters/hongbao.js.map +7 -0
  146. package/dist/src/messaging/converters/image.js +16 -0
  147. package/dist/src/messaging/converters/image.js.map +7 -0
  148. package/dist/src/messaging/converters/index.js +48 -0
  149. package/dist/src/messaging/converters/index.js.map +7 -0
  150. package/dist/src/messaging/converters/interactive/card-converter.js +1040 -0
  151. package/dist/src/messaging/converters/interactive/card-converter.js.map +7 -0
  152. package/dist/src/messaging/converters/interactive/card-utils.js +36 -0
  153. package/dist/src/messaging/converters/interactive/card-utils.js.map +7 -0
  154. package/dist/src/messaging/converters/interactive/index.js +19 -0
  155. package/dist/src/messaging/converters/interactive/index.js.map +7 -0
  156. package/dist/src/messaging/converters/interactive/legacy.js +53 -0
  157. package/dist/src/messaging/converters/interactive/legacy.js.map +7 -0
  158. package/dist/src/messaging/converters/interactive/types.js +23 -0
  159. package/dist/src/messaging/converters/interactive/types.js.map +7 -0
  160. package/dist/src/messaging/converters/location.js +17 -0
  161. package/dist/src/messaging/converters/location.js.map +7 -0
  162. package/dist/src/messaging/converters/merge-forward.js +143 -0
  163. package/dist/src/messaging/converters/merge-forward.js.map +7 -0
  164. package/dist/src/messaging/converters/post.js +113 -0
  165. package/dist/src/messaging/converters/post.js.map +7 -0
  166. package/dist/src/messaging/converters/share.js +22 -0
  167. package/dist/src/messaging/converters/share.js.map +7 -0
  168. package/dist/src/messaging/converters/sticker.js +16 -0
  169. package/dist/src/messaging/converters/sticker.js.map +7 -0
  170. package/dist/src/messaging/converters/system.js +25 -0
  171. package/dist/src/messaging/converters/system.js.map +7 -0
  172. package/dist/src/messaging/converters/text.js +12 -0
  173. package/dist/src/messaging/converters/text.js.map +7 -0
  174. package/dist/src/messaging/converters/todo.js +37 -0
  175. package/dist/src/messaging/converters/todo.js.map +7 -0
  176. package/dist/src/messaging/converters/types.js +1 -0
  177. package/dist/src/messaging/converters/types.js.map +7 -0
  178. package/dist/src/messaging/converters/unknown.js +13 -0
  179. package/dist/src/messaging/converters/unknown.js.map +7 -0
  180. package/dist/src/messaging/converters/utils.js +35 -0
  181. package/dist/src/messaging/converters/utils.js.map +7 -0
  182. package/dist/src/messaging/converters/video-chat.js +21 -0
  183. package/dist/src/messaging/converters/video-chat.js.map +7 -0
  184. package/dist/src/messaging/converters/video.js +30 -0
  185. package/dist/src/messaging/converters/video.js.map +7 -0
  186. package/dist/src/messaging/converters/vote.js +24 -0
  187. package/dist/src/messaging/converters/vote.js.map +7 -0
  188. package/dist/src/messaging/inbound/dedup.js +82 -0
  189. package/dist/src/messaging/inbound/dedup.js.map +7 -0
  190. package/dist/src/messaging/inbound/dispatch-builders.js +98 -0
  191. package/dist/src/messaging/inbound/dispatch-builders.js.map +7 -0
  192. package/dist/src/messaging/inbound/dispatch-commands.js +94 -0
  193. package/dist/src/messaging/inbound/dispatch-commands.js.map +7 -0
  194. package/dist/src/messaging/inbound/dispatch-context.js +96 -0
  195. package/dist/src/messaging/inbound/dispatch-context.js.map +7 -0
  196. package/dist/src/messaging/inbound/dispatch.js +150 -0
  197. package/dist/src/messaging/inbound/dispatch.js.map +7 -0
  198. package/dist/src/messaging/inbound/enrich.js +137 -0
  199. package/dist/src/messaging/inbound/enrich.js.map +7 -0
  200. package/dist/src/messaging/inbound/gate-effects.js +28 -0
  201. package/dist/src/messaging/inbound/gate-effects.js.map +7 -0
  202. package/dist/src/messaging/inbound/gate.js +163 -0
  203. package/dist/src/messaging/inbound/gate.js.map +7 -0
  204. package/dist/src/messaging/inbound/handler.js +132 -0
  205. package/dist/src/messaging/inbound/handler.js.map +7 -0
  206. package/dist/src/messaging/inbound/media-resolver.js +70 -0
  207. package/dist/src/messaging/inbound/media-resolver.js.map +7 -0
  208. package/dist/src/messaging/inbound/mention.js +50 -0
  209. package/dist/src/messaging/inbound/mention.js.map +7 -0
  210. package/dist/src/messaging/inbound/parse-io.js +41 -0
  211. package/dist/src/messaging/inbound/parse-io.js.map +7 -0
  212. package/dist/src/messaging/inbound/parse.js +79 -0
  213. package/dist/src/messaging/inbound/parse.js.map +7 -0
  214. package/dist/src/messaging/inbound/permission.js +30 -0
  215. package/dist/src/messaging/inbound/permission.js.map +7 -0
  216. package/dist/src/messaging/inbound/policy.js +83 -0
  217. package/dist/src/messaging/inbound/policy.js.map +7 -0
  218. package/dist/src/messaging/inbound/reaction-handler.js +162 -0
  219. package/dist/src/messaging/inbound/reaction-handler.js.map +7 -0
  220. package/dist/src/messaging/inbound/user-name-cache.js +172 -0
  221. package/dist/src/messaging/inbound/user-name-cache.js.map +7 -0
  222. package/dist/src/messaging/outbound/actions.js +239 -0
  223. package/dist/src/messaging/outbound/actions.js.map +7 -0
  224. package/dist/src/messaging/outbound/chat-manage.js +74 -0
  225. package/dist/src/messaging/outbound/chat-manage.js.map +7 -0
  226. package/dist/src/messaging/outbound/deliver.js +162 -0
  227. package/dist/src/messaging/outbound/deliver.js.map +7 -0
  228. package/dist/src/messaging/outbound/fetch.js +7 -0
  229. package/dist/src/messaging/outbound/fetch.js.map +7 -0
  230. package/dist/src/messaging/outbound/forward.js +31 -0
  231. package/dist/src/messaging/outbound/forward.js.map +7 -0
  232. package/dist/src/messaging/outbound/media-url-utils.js +101 -0
  233. package/dist/src/messaging/outbound/media-url-utils.js.map +7 -0
  234. package/dist/src/messaging/outbound/media.js +463 -0
  235. package/dist/src/messaging/outbound/media.js.map +7 -0
  236. package/dist/src/messaging/outbound/outbound.js +95 -0
  237. package/dist/src/messaging/outbound/outbound.js.map +7 -0
  238. package/dist/src/messaging/outbound/reactions.js +312 -0
  239. package/dist/src/messaging/outbound/reactions.js.map +7 -0
  240. package/dist/src/messaging/outbound/send.js +194 -0
  241. package/dist/src/messaging/outbound/send.js.map +7 -0
  242. package/dist/src/messaging/outbound/typing.js +77 -0
  243. package/dist/src/messaging/outbound/typing.js.map +7 -0
  244. package/dist/src/messaging/shared/message-lookup.js +84 -0
  245. package/dist/src/messaging/shared/message-lookup.js.map +7 -0
  246. package/dist/src/messaging/types.js +1 -0
  247. package/dist/src/messaging/types.js.map +7 -0
  248. package/dist/src/tools/auto-auth.js +714 -0
  249. package/dist/src/tools/auto-auth.js.map +7 -0
  250. package/dist/src/tools/helpers.js +133 -0
  251. package/dist/src/tools/helpers.js.map +7 -0
  252. package/dist/src/tools/mcp/doc/create.js +35 -0
  253. package/dist/src/tools/mcp/doc/create.js.map +7 -0
  254. package/dist/src/tools/mcp/doc/fetch.js +33 -0
  255. package/dist/src/tools/mcp/doc/fetch.js.map +7 -0
  256. package/dist/src/tools/mcp/doc/index.js +32 -0
  257. package/dist/src/tools/mcp/doc/index.js.map +7 -0
  258. package/dist/src/tools/mcp/doc/update.js +61 -0
  259. package/dist/src/tools/mcp/doc/update.js.map +7 -0
  260. package/dist/src/tools/mcp/project/endpoint.js +25 -0
  261. package/dist/src/tools/mcp/project/endpoint.js.map +7 -0
  262. package/dist/src/tools/mcp/project/index.js +27 -0
  263. package/dist/src/tools/mcp/project/index.js.map +7 -0
  264. package/dist/src/tools/mcp/project/tools.js +579 -0
  265. package/dist/src/tools/mcp/project/tools.js.map +7 -0
  266. package/dist/src/tools/mcp/shared.js +170 -0
  267. package/dist/src/tools/mcp/shared.js.map +7 -0
  268. package/dist/src/tools/oapi/bitable/app-table-field.js +244 -0
  269. package/dist/src/tools/oapi/bitable/app-table-field.js.map +7 -0
  270. package/dist/src/tools/oapi/bitable/app-table-record.js +501 -0
  271. package/dist/src/tools/oapi/bitable/app-table-record.js.map +7 -0
  272. package/dist/src/tools/oapi/bitable/app-table-view.js +226 -0
  273. package/dist/src/tools/oapi/bitable/app-table-view.js.map +7 -0
  274. package/dist/src/tools/oapi/bitable/app-table.js +278 -0
  275. package/dist/src/tools/oapi/bitable/app-table.js.map +7 -0
  276. package/dist/src/tools/oapi/bitable/app.js +200 -0
  277. package/dist/src/tools/oapi/bitable/app.js.map +7 -0
  278. package/dist/src/tools/oapi/bitable/index.js +13 -0
  279. package/dist/src/tools/oapi/bitable/index.js.map +7 -0
  280. package/dist/src/tools/oapi/calendar/calendar.js +131 -0
  281. package/dist/src/tools/oapi/calendar/calendar.js.map +7 -0
  282. package/dist/src/tools/oapi/calendar/event-attendee.js +301 -0
  283. package/dist/src/tools/oapi/calendar/event-attendee.js.map +7 -0
  284. package/dist/src/tools/oapi/calendar/event.js +834 -0
  285. package/dist/src/tools/oapi/calendar/event.js.map +7 -0
  286. package/dist/src/tools/oapi/calendar/freebusy.js +111 -0
  287. package/dist/src/tools/oapi/calendar/freebusy.js.map +7 -0
  288. package/dist/src/tools/oapi/calendar/index.js +11 -0
  289. package/dist/src/tools/oapi/calendar/index.js.map +7 -0
  290. package/dist/src/tools/oapi/chat/chat.js +132 -0
  291. package/dist/src/tools/oapi/chat/chat.js.map +7 -0
  292. package/dist/src/tools/oapi/chat/index.js +11 -0
  293. package/dist/src/tools/oapi/chat/index.js.map +7 -0
  294. package/dist/src/tools/oapi/chat/members.js +83 -0
  295. package/dist/src/tools/oapi/chat/members.js.map +7 -0
  296. package/dist/src/tools/oapi/common/get-user.js +95 -0
  297. package/dist/src/tools/oapi/common/get-user.js.map +7 -0
  298. package/dist/src/tools/oapi/common/index.js +7 -0
  299. package/dist/src/tools/oapi/common/index.js.map +7 -0
  300. package/dist/src/tools/oapi/common/search-user.js +67 -0
  301. package/dist/src/tools/oapi/common/search-user.js.map +7 -0
  302. package/dist/src/tools/oapi/drive/doc-comments.js +310 -0
  303. package/dist/src/tools/oapi/drive/doc-comments.js.map +7 -0
  304. package/dist/src/tools/oapi/drive/doc-media.js +314 -0
  305. package/dist/src/tools/oapi/drive/doc-media.js.map +7 -0
  306. package/dist/src/tools/oapi/drive/file.js +548 -0
  307. package/dist/src/tools/oapi/drive/file.js.map +7 -0
  308. package/dist/src/tools/oapi/drive/index.js +29 -0
  309. package/dist/src/tools/oapi/drive/index.js.map +7 -0
  310. package/dist/src/tools/oapi/helpers.js +199 -0
  311. package/dist/src/tools/oapi/helpers.js.map +7 -0
  312. package/dist/src/tools/oapi/im/format-messages.js +128 -0
  313. package/dist/src/tools/oapi/im/format-messages.js.map +7 -0
  314. package/dist/src/tools/oapi/im/index.js +15 -0
  315. package/dist/src/tools/oapi/im/index.js.map +7 -0
  316. package/dist/src/tools/oapi/im/message-read.js +404 -0
  317. package/dist/src/tools/oapi/im/message-read.js.map +7 -0
  318. package/dist/src/tools/oapi/im/message.js +179 -0
  319. package/dist/src/tools/oapi/im/message.js.map +7 -0
  320. package/dist/src/tools/oapi/im/resource.js +126 -0
  321. package/dist/src/tools/oapi/im/resource.js.map +7 -0
  322. package/dist/src/tools/oapi/im/time-utils.js +169 -0
  323. package/dist/src/tools/oapi/im/time-utils.js.map +7 -0
  324. package/dist/src/tools/oapi/im/user-name-uat.js +103 -0
  325. package/dist/src/tools/oapi/im/user-name-uat.js.map +7 -0
  326. package/dist/src/tools/oapi/index.js +56 -0
  327. package/dist/src/tools/oapi/index.js.map +7 -0
  328. package/dist/src/tools/oapi/sdk-types.js +1 -0
  329. package/dist/src/tools/oapi/sdk-types.js.map +7 -0
  330. package/dist/src/tools/oapi/search/doc-search.js +215 -0
  331. package/dist/src/tools/oapi/search/doc-search.js.map +7 -0
  332. package/dist/src/tools/oapi/search/index.js +25 -0
  333. package/dist/src/tools/oapi/search/index.js.map +7 -0
  334. package/dist/src/tools/oapi/sheets/index.js +25 -0
  335. package/dist/src/tools/oapi/sheets/index.js.map +7 -0
  336. package/dist/src/tools/oapi/sheets/sheet.js +652 -0
  337. package/dist/src/tools/oapi/sheets/sheet.js.map +7 -0
  338. package/dist/src/tools/oapi/task/comment.js +151 -0
  339. package/dist/src/tools/oapi/task/comment.js.map +7 -0
  340. package/dist/src/tools/oapi/task/index.js +11 -0
  341. package/dist/src/tools/oapi/task/index.js.map +7 -0
  342. package/dist/src/tools/oapi/task/subtask.js +175 -0
  343. package/dist/src/tools/oapi/task/subtask.js.map +7 -0
  344. package/dist/src/tools/oapi/task/task.js +405 -0
  345. package/dist/src/tools/oapi/task/task.js.map +7 -0
  346. package/dist/src/tools/oapi/task/tasklist.js +366 -0
  347. package/dist/src/tools/oapi/task/tasklist.js.map +7 -0
  348. package/dist/src/tools/oapi/wiki/index.js +27 -0
  349. package/dist/src/tools/oapi/wiki/index.js.map +7 -0
  350. package/dist/src/tools/oapi/wiki/space-node.js +311 -0
  351. package/dist/src/tools/oapi/wiki/space-node.js.map +7 -0
  352. package/dist/src/tools/oapi/wiki/space.js +148 -0
  353. package/dist/src/tools/oapi/wiki/space.js.map +7 -0
  354. package/dist/src/tools/oauth-batch-auth.js +125 -0
  355. package/dist/src/tools/oauth-batch-auth.js.map +7 -0
  356. package/dist/src/tools/oauth-cards.js +269 -0
  357. package/dist/src/tools/oauth-cards.js.map +7 -0
  358. package/dist/src/tools/oauth.js +538 -0
  359. package/dist/src/tools/oauth.js.map +7 -0
  360. package/dist/src/tools/onboarding-auth.js +101 -0
  361. package/dist/src/tools/onboarding-auth.js.map +7 -0
  362. package/dist/src/tools/project-oauth.js +305 -0
  363. package/dist/src/tools/project-oauth.js.map +7 -0
  364. package/dist/src/tools/tat/im/index.js +9 -0
  365. package/dist/src/tools/tat/im/index.js.map +7 -0
  366. package/dist/src/tools/tat/im/resource.js +123 -0
  367. package/dist/src/tools/tat/im/resource.js.map +7 -0
  368. package/package.json +64 -0
@@ -0,0 +1,77 @@
1
+ import { LarkClient } from "../../core/lark-client";
2
+ import { normalizeMessageId } from "../../core/targets";
3
+ import { isMessageUnavailableError, runWithMessageUnavailableGuard } from "../../core/message-unavailable";
4
+ import { larkLogger } from "../../core/lark-logger";
5
+ const log = larkLogger("outbound/typing");
6
+ const TYPING_EMOJI_TYPE = "Typing";
7
+ async function addTypingIndicator(params) {
8
+ const { cfg, messageId, accountId } = params;
9
+ const normalizedId = normalizeMessageId(messageId);
10
+ const state = {
11
+ messageId: normalizedId,
12
+ // 保存规范化后的 ID
13
+ reactionId: null
14
+ };
15
+ try {
16
+ const client = LarkClient.fromCfg(cfg, accountId).sdk;
17
+ const response = await runWithMessageUnavailableGuard({
18
+ messageId: normalizedId,
19
+ operation: "im.messageReaction.create(typing)",
20
+ fn: () => client.im.messageReaction.create({
21
+ path: {
22
+ message_id: normalizedId
23
+ },
24
+ data: {
25
+ reaction_type: {
26
+ emoji_type: TYPING_EMOJI_TYPE
27
+ }
28
+ }
29
+ })
30
+ });
31
+ state.reactionId = response?.data?.reaction_id ?? null;
32
+ } catch (error) {
33
+ if (isMessageUnavailableError(error)) {
34
+ log.debug(`Skip add typing indicator for unavailable message`, { messageId: normalizedId });
35
+ return state;
36
+ }
37
+ log.debug(`Failed to add typing indicator`, {
38
+ messageId,
39
+ error: error instanceof Error ? error.message : error
40
+ });
41
+ }
42
+ return state;
43
+ }
44
+ async function removeTypingIndicator(params) {
45
+ const { cfg, state, accountId } = params;
46
+ const reactionId = state.reactionId;
47
+ if (!reactionId) {
48
+ return;
49
+ }
50
+ try {
51
+ const client = LarkClient.fromCfg(cfg, accountId).sdk;
52
+ await runWithMessageUnavailableGuard({
53
+ messageId: state.messageId,
54
+ operation: "im.messageReaction.delete(typing)",
55
+ fn: () => client.im.messageReaction.delete({
56
+ path: {
57
+ message_id: state.messageId,
58
+ reaction_id: reactionId
59
+ }
60
+ })
61
+ });
62
+ } catch (error) {
63
+ if (isMessageUnavailableError(error)) {
64
+ log.debug(`Skip remove typing indicator for unavailable message`, { messageId: state.messageId });
65
+ return;
66
+ }
67
+ log.debug(`Failed to remove typing indicator`, {
68
+ messageId: state.messageId,
69
+ error: error instanceof Error ? error.message : error
70
+ });
71
+ }
72
+ }
73
+ export {
74
+ addTypingIndicator,
75
+ removeTypingIndicator
76
+ };
77
+ //# sourceMappingURL=typing.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/messaging/outbound/typing.ts"],
4
+ "sourcesContent": ["/**\n * Copyright (c) 2026 ByteDance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n *\n * Typing indicator management for the Lark/Feishu channel plugin.\n *\n * Feishu does not expose a first-class \"typing indicator\" API the way\n * some other messaging platforms do. Instead, this module simulates a\n * typing state by adding a recognisable emoji reaction (the \"Typing\"\n * emoji) to the user's message while the bot is processing, and\n * removing it once the response is ready.\n *\n * This provides a lightweight visual cue that the bot has acknowledged\n * the message and is working on a reply.\n */\n\nimport type { OpenClawConfig } from 'openclaw/plugin-sdk';\nimport { LarkClient } from '../../core/lark-client';\nimport { normalizeMessageId } from '../../core/targets';\nimport { isMessageUnavailableError, runWithMessageUnavailableGuard } from '../../core/message-unavailable';\nimport { larkLogger } from '../../core/lark-logger';\n\nconst log = larkLogger('outbound/typing');\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/**\n * Tracks the state of an active typing indicator so it can be\n * removed later.\n */\nexport interface TypingIndicatorState {\n /** The message ID that the reaction was added to. */\n messageId: string;\n /** The reaction ID returned by the API, or null if the add failed. */\n reactionId: string | null;\n}\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/**\n * The emoji type used to represent the typing indicator.\n *\n * \"Typing\" is a built-in Feishu emoji that shows a pencil / keyboard\n * animation, making it a natural choice for a typing cue.\n */\nconst TYPING_EMOJI_TYPE = 'Typing';\n\n// ---------------------------------------------------------------------------\n// addTypingIndicator\n// ---------------------------------------------------------------------------\n\n/**\n * Add a typing indicator to a message by creating an emoji reaction.\n *\n * The reaction is added silently -- any errors (network issues, missing\n * permissions, rate limits) are caught and logged rather than propagated\n * to the caller. This ensures that a failure to show the typing cue\n * never blocks the actual message processing.\n *\n * @param params.cfg - Plugin configuration with Feishu credentials.\n * @param params.messageId - The message ID to add the typing reaction to.\n * @param params.accountId - Optional account identifier for multi-account setups.\n * @returns A state object that should be passed to {@link removeTypingIndicator}.\n */\nexport async function addTypingIndicator(params: {\n cfg: OpenClawConfig;\n messageId: string;\n accountId?: string;\n}): Promise<TypingIndicatorState> {\n const { cfg, messageId, accountId } = params;\n\n // \u89C4\u8303\u5316 message_id\uFF0C\u5904\u7406\u5408\u6210 ID\uFF08\u5982 \"om_xxx:auth-complete\"\uFF09\n const normalizedId = normalizeMessageId(messageId);\n\n const state: TypingIndicatorState = {\n messageId: normalizedId, // \u4FDD\u5B58\u89C4\u8303\u5316\u540E\u7684 ID\n reactionId: null,\n };\n\n try {\n const client = LarkClient.fromCfg(cfg, accountId).sdk;\n\n const response = await runWithMessageUnavailableGuard({\n messageId: normalizedId,\n operation: 'im.messageReaction.create(typing)',\n fn: () =>\n client.im.messageReaction.create({\n path: {\n message_id: normalizedId,\n },\n data: {\n reaction_type: {\n emoji_type: TYPING_EMOJI_TYPE,\n },\n },\n }),\n });\n\n state.reactionId = response?.data?.reaction_id ?? null;\n } catch (error) {\n if (isMessageUnavailableError(error)) {\n log.debug(`Skip add typing indicator for unavailable message`, { messageId: normalizedId });\n return state;\n }\n // Silently swallow the error. The typing indicator is a best-effort\n // visual cue and must not interfere with message processing.\n log.debug(`Failed to add typing indicator`, {\n messageId,\n error: error instanceof Error ? error.message : error,\n });\n }\n\n return state;\n}\n\n// ---------------------------------------------------------------------------\n// removeTypingIndicator\n// ---------------------------------------------------------------------------\n\n/**\n * Remove a previously added typing indicator reaction from a message.\n *\n * If the indicator was never successfully added (reactionId is null),\n * this function is a no-op. Errors are silently caught so removal\n * failures do not disrupt downstream logic.\n *\n * @param params.cfg - Plugin configuration with Feishu credentials.\n * @param params.state - The typing indicator state returned by {@link addTypingIndicator}.\n * @param params.accountId - Optional account identifier for multi-account setups.\n */\nexport async function removeTypingIndicator(params: {\n cfg: OpenClawConfig;\n state: TypingIndicatorState;\n accountId?: string;\n}): Promise<void> {\n const { cfg, state, accountId } = params;\n const reactionId = state.reactionId;\n\n if (!reactionId) {\n // Nothing to remove -- the indicator was never added or the add\n // call did not return a reaction ID.\n return;\n }\n\n try {\n const client = LarkClient.fromCfg(cfg, accountId).sdk;\n\n await runWithMessageUnavailableGuard({\n messageId: state.messageId,\n operation: 'im.messageReaction.delete(typing)',\n fn: () =>\n client.im.messageReaction.delete({\n path: {\n message_id: state.messageId,\n reaction_id: reactionId,\n },\n }),\n });\n } catch (error) {\n if (isMessageUnavailableError(error)) {\n log.debug(`Skip remove typing indicator for unavailable message`, { messageId: state.messageId });\n return;\n }\n // Silently swallow the error. A leftover reaction is acceptable;\n // it will not confuse the user and will disappear if the message\n // is deleted or the reaction is manually removed.\n log.debug(`Failed to remove typing indicator`, {\n messageId: state.messageId,\n error: error instanceof Error ? error.message : error,\n });\n }\n}\n"],
5
+ "mappings": "AAiBA,SAAS,kBAAkB;AAC3B,SAAS,0BAA0B;AACnC,SAAS,2BAA2B,sCAAsC;AAC1E,SAAS,kBAAkB;AAE3B,MAAM,MAAM,WAAW,iBAAiB;AA2BxC,MAAM,oBAAoB;AAmB1B,eAAsB,mBAAmB,QAIP;AAChC,QAAM,EAAE,KAAK,WAAW,UAAU,IAAI;AAGtC,QAAM,eAAe,mBAAmB,SAAS;AAEjD,QAAM,QAA8B;AAAA,IAClC,WAAW;AAAA;AAAA,IACX,YAAY;AAAA,EACd;AAEA,MAAI;AACF,UAAM,SAAS,WAAW,QAAQ,KAAK,SAAS,EAAE;AAElD,UAAM,WAAW,MAAM,+BAA+B;AAAA,MACpD,WAAW;AAAA,MACX,WAAW;AAAA,MACX,IAAI,MACF,OAAO,GAAG,gBAAgB,OAAO;AAAA,QAC/B,MAAM;AAAA,UACJ,YAAY;AAAA,QACd;AAAA,QACA,MAAM;AAAA,UACJ,eAAe;AAAA,YACb,YAAY;AAAA,UACd;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACL,CAAC;AAED,UAAM,aAAa,UAAU,MAAM,eAAe;AAAA,EACpD,SAAS,OAAO;AACd,QAAI,0BAA0B,KAAK,GAAG;AACpC,UAAI,MAAM,qDAAqD,EAAE,WAAW,aAAa,CAAC;AAC1F,aAAO;AAAA,IACT;AAGA,QAAI,MAAM,kCAAkC;AAAA,MAC1C;AAAA,MACA,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,IAClD,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAiBA,eAAsB,sBAAsB,QAI1B;AAChB,QAAM,EAAE,KAAK,OAAO,UAAU,IAAI;AAClC,QAAM,aAAa,MAAM;AAEzB,MAAI,CAAC,YAAY;AAGf;AAAA,EACF;AAEA,MAAI;AACF,UAAM,SAAS,WAAW,QAAQ,KAAK,SAAS,EAAE;AAElD,UAAM,+BAA+B;AAAA,MACnC,WAAW,MAAM;AAAA,MACjB,WAAW;AAAA,MACX,IAAI,MACF,OAAO,GAAG,gBAAgB,OAAO;AAAA,QAC/B,MAAM;AAAA,UACJ,YAAY,MAAM;AAAA,UAClB,aAAa;AAAA,QACf;AAAA,MACF,CAAC;AAAA,IACL,CAAC;AAAA,EACH,SAAS,OAAO;AACd,QAAI,0BAA0B,KAAK,GAAG;AACpC,UAAI,MAAM,wDAAwD,EAAE,WAAW,MAAM,UAAU,CAAC;AAChG;AAAA,IACF;AAIA,QAAI,MAAM,qCAAqC;AAAA,MAC7C,WAAW,MAAM;AAAA,MACjB,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,IAClD,CAAC;AAAA,EACH;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,84 @@
1
+ import { convertMessageContent, buildConvertContextFromItem } from "../converters/content-converter";
2
+ import { LarkClient } from "../../core/lark-client";
3
+ import { larkLogger } from "../../core/lark-logger";
4
+ const log = larkLogger("shared/message-lookup");
5
+ import { getUserNameCache, createBatchResolveNames } from "../inbound/user-name-cache";
6
+ import { getLarkAccount } from "../../core/accounts";
7
+ async function getMessageFeishu(params) {
8
+ const { cfg, messageId, accountId, expandForward } = params;
9
+ const larkClient = LarkClient.fromCfg(cfg, accountId);
10
+ const sdk = larkClient.sdk;
11
+ try {
12
+ const requestOpts = {
13
+ method: "GET",
14
+ url: `/open-apis/im/v1/messages/mget`,
15
+ params: {
16
+ message_ids: messageId,
17
+ user_id_type: "open_id",
18
+ card_msg_content_type: "raw_card_content"
19
+ }
20
+ };
21
+ const response = await sdk.request(requestOpts);
22
+ const items = response?.data?.items;
23
+ if (!items || items.length === 0) {
24
+ log.info(`getMessageFeishu: no items returned for ${messageId}`);
25
+ return null;
26
+ }
27
+ const expandCtx = expandForward ? {
28
+ cfg,
29
+ accountId,
30
+ fetchSubMessages: async (msgId) => {
31
+ const res = await larkClient.sdk.request({
32
+ method: "GET",
33
+ url: `/open-apis/im/v1/messages/${msgId}`,
34
+ params: { user_id_type: "open_id", card_msg_content_type: "raw_card_content" }
35
+ });
36
+ if (res?.code !== 0) {
37
+ throw new Error(`API error: code=${res?.code} msg=${res?.msg}`);
38
+ }
39
+ return res?.data?.items ?? [];
40
+ },
41
+ batchResolveNames: createBatchResolveNames(
42
+ getLarkAccount(cfg, accountId),
43
+ (...args) => log.info(args.map(String).join(" "))
44
+ )
45
+ } : void 0;
46
+ return await parseMessageItem(items[0], messageId, expandCtx);
47
+ } catch (error) {
48
+ log.error(`get message failed (${messageId}): ${error instanceof Error ? error.message : String(error)}`);
49
+ return null;
50
+ }
51
+ }
52
+ async function parseMessageItem(msg, fallbackMessageId, expandCtx) {
53
+ const msgType = msg.msg_type ?? "text";
54
+ const rawContent = msg.body?.content ?? "{}";
55
+ const messageId = msg.message_id ?? fallbackMessageId;
56
+ const acctId = expandCtx?.accountId;
57
+ const ctx = {
58
+ ...buildConvertContextFromItem(msg, fallbackMessageId, acctId),
59
+ cfg: expandCtx?.cfg,
60
+ accountId: acctId,
61
+ fetchSubMessages: expandCtx?.fetchSubMessages,
62
+ batchResolveNames: expandCtx?.batchResolveNames
63
+ };
64
+ const { content } = await convertMessageContent(rawContent, msgType, ctx);
65
+ const senderId = msg.sender?.id ?? void 0;
66
+ const senderType = msg.sender?.sender_type ?? void 0;
67
+ const senderName = senderId && acctId ? getUserNameCache(acctId).get(senderId) : void 0;
68
+ return {
69
+ messageId,
70
+ chatId: msg.chat_id ?? "",
71
+ chatType: msg.chat_type ?? void 0,
72
+ senderId,
73
+ senderName,
74
+ senderType,
75
+ content,
76
+ contentType: msgType,
77
+ createTime: msg.create_time ? parseInt(String(msg.create_time), 10) : void 0,
78
+ threadId: msg.thread_id || void 0
79
+ };
80
+ }
81
+ export {
82
+ getMessageFeishu
83
+ };
84
+ //# sourceMappingURL=message-lookup.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/messaging/shared/message-lookup.ts"],
4
+ "sourcesContent": ["/**\n * Copyright (c) 2026 ByteDance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n *\n * Message fetching for the Lark/Feishu channel plugin.\n *\n * Shared between inbound (reaction handler, enrich) and outbound modules.\n * Extracted from `outbound/fetch.ts` to eliminate inbound\u2192outbound\n * dependency inversion.\n */\n\nimport type { ClawdbotConfig } from 'openclaw/plugin-sdk';\nimport { convertMessageContent, buildConvertContextFromItem } from '../converters/content-converter';\nimport { LarkClient } from '../../core/lark-client';\nimport { larkLogger } from '../../core/lark-logger';\n\nconst log = larkLogger('shared/message-lookup');\nimport { getUserNameCache, createBatchResolveNames } from '../inbound/user-name-cache';\nimport { getLarkAccount } from '../../core/accounts';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/**\n * Normalised information about a Feishu message, returned by\n * {@link getMessageFeishu}.\n */\nexport interface FeishuMessageInfo {\n /** Unique Feishu message ID. */\n messageId: string;\n /** Chat ID where the message lives. */\n chatId: string;\n /** Chat type (\"p2p\" or \"group\"), when available in the API response. */\n chatType?: string;\n /** Open ID of the sender (if available). */\n senderId?: string;\n /** Display name of the sender (resolved from user-name cache). */\n senderName?: string;\n /** Feishu sender type: \"user\" for human users, \"app\" for bots/apps. */\n senderType?: string;\n /** The parsed text / content of the message. */\n content: string;\n /** Feishu content type indicator (text, post, image, interactive, ...). */\n contentType: string;\n /** Unix-millisecond timestamp of when the message was created. */\n createTime?: number;\n /** Thread ID if the message belongs to a thread (omt_xxx format). */\n threadId?: string;\n}\n\n// ---------------------------------------------------------------------------\n// getMessageFeishu\n// ---------------------------------------------------------------------------\n\n/**\n * Retrieve a single message by its ID from the Feishu IM API.\n *\n * Returns a normalised {@link FeishuMessageInfo} object, or `null` if the\n * message cannot be found or the API returns an error.\n *\n * @param params.cfg - Plugin configuration with Feishu credentials.\n * @param params.messageId - The message ID to fetch.\n * @param params.accountId - Optional account identifier for multi-account setups.\n */\nexport async function getMessageFeishu(params: {\n cfg: ClawdbotConfig;\n messageId: string;\n accountId?: string;\n /** When true, merge_forward content is recursively expanded via API. */\n expandForward?: boolean;\n}): Promise<FeishuMessageInfo | null> {\n const { cfg, messageId, accountId, expandForward } = params;\n\n const larkClient = LarkClient.fromCfg(cfg, accountId);\n const sdk = larkClient.sdk;\n\n try {\n const requestOpts = {\n method: 'GET',\n url: `/open-apis/im/v1/messages/mget`,\n params: {\n message_ids: messageId,\n user_id_type: 'open_id',\n card_msg_content_type: 'raw_card_content',\n },\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const response = await (sdk as any).request(requestOpts);\n\n const items = response?.data?.items;\n if (!items || items.length === 0) {\n log.info(`getMessageFeishu: no items returned for ${messageId}`);\n return null;\n }\n\n const expandCtx = expandForward\n ? {\n cfg,\n accountId,\n fetchSubMessages: async (msgId: string) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const res = await (larkClient.sdk as any).request({\n method: 'GET',\n url: `/open-apis/im/v1/messages/${msgId}`,\n params: { user_id_type: 'open_id', card_msg_content_type: 'raw_card_content' },\n });\n if (res?.code !== 0) {\n throw new Error(`API error: code=${res?.code} msg=${res?.msg}`);\n }\n return res?.data?.items ?? [];\n },\n batchResolveNames: createBatchResolveNames(getLarkAccount(cfg, accountId), (...args: unknown[]) =>\n log.info(args.map(String).join(' ')),\n ),\n }\n : undefined;\n return await parseMessageItem(items[0], messageId, expandCtx);\n } catch (error) {\n log.error(`get message failed (${messageId}): ${error instanceof Error ? error.message : String(error)}`);\n return null;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n/**\n * Parse a single message item from the Feishu IM API response into a\n * normalised {@link FeishuMessageInfo}.\n *\n * Content parsing is delegated to the shared converter system so that\n * every message-type mapping is defined in exactly one place.\n */\nasync function parseMessageItem(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n msg: any,\n fallbackMessageId: string,\n expandCtx?: {\n cfg: ClawdbotConfig;\n accountId?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchSubMessages?: (messageId: string) => Promise<any[]>;\n batchResolveNames?: (openIds: string[]) => Promise<void>;\n },\n): Promise<FeishuMessageInfo> {\n const msgType: string = msg.msg_type ?? 'text';\n const rawContent: string = msg.body?.content ?? '{}';\n const messageId = msg.message_id ?? fallbackMessageId;\n\n const acctId = expandCtx?.accountId;\n const ctx = {\n ...buildConvertContextFromItem(msg, fallbackMessageId, acctId),\n cfg: expandCtx?.cfg,\n accountId: acctId,\n fetchSubMessages: expandCtx?.fetchSubMessages,\n batchResolveNames: expandCtx?.batchResolveNames,\n };\n const { content } = await convertMessageContent(rawContent, msgType, ctx);\n\n const senderId: string | undefined = msg.sender?.id ?? undefined;\n const senderType: string | undefined = msg.sender?.sender_type ?? undefined;\n const senderName = senderId && acctId ? getUserNameCache(acctId).get(senderId) : undefined;\n\n return {\n messageId,\n chatId: msg.chat_id ?? '',\n chatType: msg.chat_type ?? undefined,\n senderId,\n senderName,\n senderType,\n content,\n contentType: msgType,\n createTime: msg.create_time ? parseInt(String(msg.create_time), 10) : undefined,\n threadId: msg.thread_id || undefined,\n };\n}\n"],
5
+ "mappings": "AAYA,SAAS,uBAAuB,mCAAmC;AACnE,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAE3B,MAAM,MAAM,WAAW,uBAAuB;AAC9C,SAAS,kBAAkB,+BAA+B;AAC1D,SAAS,sBAAsB;AA+C/B,eAAsB,iBAAiB,QAMD;AACpC,QAAM,EAAE,KAAK,WAAW,WAAW,cAAc,IAAI;AAErD,QAAM,aAAa,WAAW,QAAQ,KAAK,SAAS;AACpD,QAAM,MAAM,WAAW;AAEvB,MAAI;AACF,UAAM,cAAc;AAAA,MAClB,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,QAAQ;AAAA,QACN,aAAa;AAAA,QACb,cAAc;AAAA,QACd,uBAAuB;AAAA,MACzB;AAAA,IACF;AAEA,UAAM,WAAW,MAAO,IAAY,QAAQ,WAAW;AAEvD,UAAM,QAAQ,UAAU,MAAM;AAC9B,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC,UAAI,KAAK,2CAA2C,SAAS,EAAE;AAC/D,aAAO;AAAA,IACT;AAEA,UAAM,YAAY,gBACd;AAAA,MACE;AAAA,MACA;AAAA,MACA,kBAAkB,OAAO,UAAkB;AAEzC,cAAM,MAAM,MAAO,WAAW,IAAY,QAAQ;AAAA,UAChD,QAAQ;AAAA,UACR,KAAK,6BAA6B,KAAK;AAAA,UACvC,QAAQ,EAAE,cAAc,WAAW,uBAAuB,mBAAmB;AAAA,QAC/E,CAAC;AACD,YAAI,KAAK,SAAS,GAAG;AACnB,gBAAM,IAAI,MAAM,mBAAmB,KAAK,IAAI,QAAQ,KAAK,GAAG,EAAE;AAAA,QAChE;AACA,eAAO,KAAK,MAAM,SAAS,CAAC;AAAA,MAC9B;AAAA,MACA,mBAAmB;AAAA,QAAwB,eAAe,KAAK,SAAS;AAAA,QAAG,IAAI,SAC7E,IAAI,KAAK,KAAK,IAAI,MAAM,EAAE,KAAK,GAAG,CAAC;AAAA,MACrC;AAAA,IACF,IACA;AACJ,WAAO,MAAM,iBAAiB,MAAM,CAAC,GAAG,WAAW,SAAS;AAAA,EAC9D,SAAS,OAAO;AACd,QAAI,MAAM,uBAAuB,SAAS,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC,EAAE;AACxG,WAAO;AAAA,EACT;AACF;AAaA,eAAe,iBAEb,KACA,mBACA,WAO4B;AAC5B,QAAM,UAAkB,IAAI,YAAY;AACxC,QAAM,aAAqB,IAAI,MAAM,WAAW;AAChD,QAAM,YAAY,IAAI,cAAc;AAEpC,QAAM,SAAS,WAAW;AAC1B,QAAM,MAAM;AAAA,IACV,GAAG,4BAA4B,KAAK,mBAAmB,MAAM;AAAA,IAC7D,KAAK,WAAW;AAAA,IAChB,WAAW;AAAA,IACX,kBAAkB,WAAW;AAAA,IAC7B,mBAAmB,WAAW;AAAA,EAChC;AACA,QAAM,EAAE,QAAQ,IAAI,MAAM,sBAAsB,YAAY,SAAS,GAAG;AAExE,QAAM,WAA+B,IAAI,QAAQ,MAAM;AACvD,QAAM,aAAiC,IAAI,QAAQ,eAAe;AAClE,QAAM,aAAa,YAAY,SAAS,iBAAiB,MAAM,EAAE,IAAI,QAAQ,IAAI;AAEjF,SAAO;AAAA,IACL;AAAA,IACA,QAAQ,IAAI,WAAW;AAAA,IACvB,UAAU,IAAI,aAAa;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,YAAY,IAAI,cAAc,SAAS,OAAO,IAAI,WAAW,GAAG,EAAE,IAAI;AAAA,IACtE,UAAU,IAAI,aAAa;AAAA,EAC7B;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }