@openclaw-cn/feishu 0.1.8

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 (167) hide show
  1. package/README.md +86 -0
  2. package/dist/index.d.ts +37 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +49 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/accounts.d.ts +33 -0
  7. package/dist/src/accounts.d.ts.map +1 -0
  8. package/dist/src/accounts.js +110 -0
  9. package/dist/src/accounts.js.map +1 -0
  10. package/dist/src/bitable.d.ts +211 -0
  11. package/dist/src/bitable.d.ts.map +1 -0
  12. package/dist/src/bitable.js +721 -0
  13. package/dist/src/bitable.js.map +1 -0
  14. package/dist/src/bot.d.ts +53 -0
  15. package/dist/src/bot.d.ts.map +1 -0
  16. package/dist/src/bot.js +853 -0
  17. package/dist/src/bot.js.map +1 -0
  18. package/dist/src/calendar-schema.d.ts +18 -0
  19. package/dist/src/calendar-schema.d.ts.map +1 -0
  20. package/dist/src/calendar-schema.js +52 -0
  21. package/dist/src/calendar-schema.js.map +1 -0
  22. package/dist/src/calendar.d.ts +441 -0
  23. package/dist/src/calendar.d.ts.map +1 -0
  24. package/dist/src/calendar.js +257 -0
  25. package/dist/src/calendar.js.map +1 -0
  26. package/dist/src/channel.d.ts +4 -0
  27. package/dist/src/channel.d.ts.map +1 -0
  28. package/dist/src/channel.js +331 -0
  29. package/dist/src/channel.js.map +1 -0
  30. package/dist/src/client.d.ts +35 -0
  31. package/dist/src/client.d.ts.map +1 -0
  32. package/dist/src/client.js +86 -0
  33. package/dist/src/client.js.map +1 -0
  34. package/dist/src/config-schema.d.ts +176 -0
  35. package/dist/src/config-schema.d.ts.map +1 -0
  36. package/dist/src/config-schema.js +56 -0
  37. package/dist/src/config-schema.js.map +1 -0
  38. package/dist/src/directory.d.ts +36 -0
  39. package/dist/src/directory.d.ts.map +1 -0
  40. package/dist/src/directory.js +129 -0
  41. package/dist/src/directory.js.map +1 -0
  42. package/dist/src/doc-schema.d.ts +37 -0
  43. package/dist/src/doc-schema.d.ts.map +1 -0
  44. package/dist/src/doc-schema.js +51 -0
  45. package/dist/src/doc-schema.js.map +1 -0
  46. package/dist/src/docx.d.ts +3 -0
  47. package/dist/src/docx.d.ts.map +1 -0
  48. package/dist/src/docx.js +608 -0
  49. package/dist/src/docx.js.map +1 -0
  50. package/dist/src/drive-schema.d.ts +24 -0
  51. package/dist/src/drive-schema.d.ts.map +1 -0
  52. package/dist/src/drive-schema.js +39 -0
  53. package/dist/src/drive-schema.js.map +1 -0
  54. package/dist/src/drive.d.ts +3 -0
  55. package/dist/src/drive.d.ts.map +1 -0
  56. package/dist/src/drive.js +181 -0
  57. package/dist/src/drive.js.map +1 -0
  58. package/dist/src/dynamic-agent.d.ts +19 -0
  59. package/dist/src/dynamic-agent.d.ts.map +1 -0
  60. package/dist/src/dynamic-agent.js +91 -0
  61. package/dist/src/dynamic-agent.js.map +1 -0
  62. package/dist/src/im-schema.d.ts +38 -0
  63. package/dist/src/im-schema.d.ts.map +1 -0
  64. package/dist/src/im-schema.js +73 -0
  65. package/dist/src/im-schema.js.map +1 -0
  66. package/dist/src/im.d.ts +70 -0
  67. package/dist/src/im.d.ts.map +1 -0
  68. package/dist/src/im.js +328 -0
  69. package/dist/src/im.js.map +1 -0
  70. package/dist/src/media.d.ts +99 -0
  71. package/dist/src/media.d.ts.map +1 -0
  72. package/dist/src/media.js +454 -0
  73. package/dist/src/media.js.map +1 -0
  74. package/dist/src/mention.d.ts +49 -0
  75. package/dist/src/mention.d.ts.map +1 -0
  76. package/dist/src/mention.js +99 -0
  77. package/dist/src/mention.js.map +1 -0
  78. package/dist/src/monitor.d.ts +16 -0
  79. package/dist/src/monitor.d.ts.map +1 -0
  80. package/dist/src/monitor.js +288 -0
  81. package/dist/src/monitor.js.map +1 -0
  82. package/dist/src/onboarding.d.ts +3 -0
  83. package/dist/src/onboarding.d.ts.map +1 -0
  84. package/dist/src/onboarding.js +119 -0
  85. package/dist/src/onboarding.js.map +1 -0
  86. package/dist/src/outbound.d.ts +3 -0
  87. package/dist/src/outbound.d.ts.map +1 -0
  88. package/dist/src/outbound.js +53 -0
  89. package/dist/src/outbound.js.map +1 -0
  90. package/dist/src/perm-schema.d.ts +21 -0
  91. package/dist/src/perm-schema.d.ts.map +1 -0
  92. package/dist/src/perm-schema.js +47 -0
  93. package/dist/src/perm-schema.js.map +1 -0
  94. package/dist/src/perm.d.ts +14 -0
  95. package/dist/src/perm.d.ts.map +1 -0
  96. package/dist/src/perm.js +106 -0
  97. package/dist/src/perm.js.map +1 -0
  98. package/dist/src/policy.d.ts +28 -0
  99. package/dist/src/policy.d.ts.map +1 -0
  100. package/dist/src/policy.js +61 -0
  101. package/dist/src/policy.js.map +1 -0
  102. package/dist/src/probe.d.ts +4 -0
  103. package/dist/src/probe.d.ts.map +1 -0
  104. package/dist/src/probe.js +41 -0
  105. package/dist/src/probe.js.map +1 -0
  106. package/dist/src/reactions.d.ts +66 -0
  107. package/dist/src/reactions.d.ts.map +1 -0
  108. package/dist/src/reactions.js +104 -0
  109. package/dist/src/reactions.js.map +1 -0
  110. package/dist/src/reply-dispatcher.d.ts +41 -0
  111. package/dist/src/reply-dispatcher.d.ts.map +1 -0
  112. package/dist/src/reply-dispatcher.js +249 -0
  113. package/dist/src/reply-dispatcher.js.map +1 -0
  114. package/dist/src/runtime.d.ts +4 -0
  115. package/dist/src/runtime.d.ts.map +1 -0
  116. package/dist/src/runtime.js +11 -0
  117. package/dist/src/runtime.js.map +1 -0
  118. package/dist/src/send.d.ts +76 -0
  119. package/dist/src/send.d.ts.map +1 -0
  120. package/dist/src/send.js +250 -0
  121. package/dist/src/send.js.map +1 -0
  122. package/dist/src/sheets-schema.d.ts +12 -0
  123. package/dist/src/sheets-schema.d.ts.map +1 -0
  124. package/dist/src/sheets-schema.js +35 -0
  125. package/dist/src/sheets-schema.js.map +1 -0
  126. package/dist/src/sheets.d.ts +45 -0
  127. package/dist/src/sheets.d.ts.map +1 -0
  128. package/dist/src/sheets.js +197 -0
  129. package/dist/src/sheets.js.map +1 -0
  130. package/dist/src/streaming-card.d.ts +29 -0
  131. package/dist/src/streaming-card.d.ts.map +1 -0
  132. package/dist/src/streaming-card.js +192 -0
  133. package/dist/src/streaming-card.js.map +1 -0
  134. package/dist/src/targets.d.ts +7 -0
  135. package/dist/src/targets.d.ts.map +1 -0
  136. package/dist/src/targets.js +70 -0
  137. package/dist/src/targets.js.map +1 -0
  138. package/dist/src/task-schema.d.ts +19 -0
  139. package/dist/src/task-schema.d.ts.map +1 -0
  140. package/dist/src/task-schema.js +54 -0
  141. package/dist/src/task-schema.js.map +1 -0
  142. package/dist/src/task.d.ts +1193 -0
  143. package/dist/src/task.d.ts.map +1 -0
  144. package/dist/src/task.js +274 -0
  145. package/dist/src/task.js.map +1 -0
  146. package/dist/src/tools-config.d.ts +12 -0
  147. package/dist/src/tools-config.d.ts.map +1 -0
  148. package/dist/src/tools-config.js +24 -0
  149. package/dist/src/tools-config.js.map +1 -0
  150. package/dist/src/types.d.ts +74 -0
  151. package/dist/src/types.d.ts.map +1 -0
  152. package/dist/src/types.js +2 -0
  153. package/dist/src/types.js.map +1 -0
  154. package/dist/src/typing.d.ts +22 -0
  155. package/dist/src/typing.d.ts.map +1 -0
  156. package/dist/src/typing.js +60 -0
  157. package/dist/src/typing.js.map +1 -0
  158. package/dist/src/wiki-schema.d.ts +34 -0
  159. package/dist/src/wiki-schema.d.ts.map +1 -0
  160. package/dist/src/wiki-schema.js +43 -0
  161. package/dist/src/wiki-schema.js.map +1 -0
  162. package/dist/src/wiki.d.ts +3 -0
  163. package/dist/src/wiki.d.ts.map +1 -0
  164. package/dist/src/wiki.js +176 -0
  165. package/dist/src/wiki.js.map +1 -0
  166. package/openclaw.plugin.json +9 -0
  167. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAqBtE;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAiC9E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAalF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAK1F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAErE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAMzD"}
@@ -0,0 +1,86 @@
1
+ import * as Lark from "@larksuiteoapi/node-sdk";
2
+ // Multi-account client cache
3
+ const clientCache = new Map();
4
+ function resolveDomain(domain) {
5
+ if (domain === "lark") {
6
+ return Lark.Domain.Lark;
7
+ }
8
+ if (domain === "feishu" || !domain) {
9
+ return Lark.Domain.Feishu;
10
+ }
11
+ return domain.replace(/\/+$/, ""); // Custom URL for private deployment
12
+ }
13
+ /**
14
+ * Create or get a cached Feishu client for an account.
15
+ * Accepts any object with appId, appSecret, and optional domain/accountId.
16
+ */
17
+ export function createFeishuClient(creds) {
18
+ const { accountId = "default", appId, appSecret, domain } = creds;
19
+ if (!appId || !appSecret) {
20
+ throw new Error(`Feishu credentials not configured for account "${accountId}"`);
21
+ }
22
+ // Check cache
23
+ const cached = clientCache.get(accountId);
24
+ if (cached &&
25
+ cached.config.appId === appId &&
26
+ cached.config.appSecret === appSecret &&
27
+ cached.config.domain === domain) {
28
+ return cached.client;
29
+ }
30
+ // Create new client
31
+ const client = new Lark.Client({
32
+ appId,
33
+ appSecret,
34
+ appType: Lark.AppType.SelfBuild,
35
+ domain: resolveDomain(domain),
36
+ });
37
+ // Cache it
38
+ clientCache.set(accountId, {
39
+ client,
40
+ config: { appId, appSecret, domain },
41
+ });
42
+ return client;
43
+ }
44
+ /**
45
+ * Create a Feishu WebSocket client for an account.
46
+ * Note: WSClient is not cached since each call creates a new connection.
47
+ */
48
+ export function createFeishuWSClient(account) {
49
+ const { accountId, appId, appSecret, domain } = account;
50
+ if (!appId || !appSecret) {
51
+ throw new Error(`Feishu credentials not configured for account "${accountId}"`);
52
+ }
53
+ return new Lark.WSClient({
54
+ appId,
55
+ appSecret,
56
+ domain: resolveDomain(domain),
57
+ loggerLevel: Lark.LoggerLevel.info,
58
+ });
59
+ }
60
+ /**
61
+ * Create an event dispatcher for an account.
62
+ */
63
+ export function createEventDispatcher(account) {
64
+ return new Lark.EventDispatcher({
65
+ encryptKey: account.encryptKey,
66
+ verificationToken: account.verificationToken,
67
+ });
68
+ }
69
+ /**
70
+ * Get a cached client for an account (if exists).
71
+ */
72
+ export function getFeishuClient(accountId) {
73
+ return clientCache.get(accountId)?.client ?? null;
74
+ }
75
+ /**
76
+ * Clear client cache for a specific account or all accounts.
77
+ */
78
+ export function clearClientCache(accountId) {
79
+ if (accountId) {
80
+ clientCache.delete(accountId);
81
+ }
82
+ else {
83
+ clientCache.clear();
84
+ }
85
+ }
86
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ import { z } from "zod";
2
+ export declare const FeishuConfigSchema: z.ZodObject<{
3
+ name: z.ZodOptional<z.ZodString>;
4
+ enabled: z.ZodOptional<z.ZodBoolean>;
5
+ appId: z.ZodOptional<z.ZodString>;
6
+ appSecret: z.ZodOptional<z.ZodString>;
7
+ appSecretFile: z.ZodOptional<z.ZodString>;
8
+ encryptKey: z.ZodOptional<z.ZodString>;
9
+ verificationToken: z.ZodOptional<z.ZodString>;
10
+ domain: z.ZodOptional<z.ZodString>;
11
+ botName: z.ZodOptional<z.ZodString>;
12
+ markdown: z.ZodOptional<z.ZodObject<{
13
+ tables: z.ZodOptional<z.ZodEnum<{
14
+ off: "off";
15
+ bullets: "bullets";
16
+ code: "code";
17
+ }>>;
18
+ }, z.core.$strict>>;
19
+ dmPolicy: z.ZodOptional<z.ZodEnum<{
20
+ disabled: "disabled";
21
+ pairing: "pairing";
22
+ allowlist: "allowlist";
23
+ open: "open";
24
+ }>>;
25
+ groupPolicy: z.ZodOptional<z.ZodEnum<{
26
+ disabled: "disabled";
27
+ allowlist: "allowlist";
28
+ open: "open";
29
+ }>>;
30
+ allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
31
+ groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
32
+ historyLimit: z.ZodOptional<z.ZodNumber>;
33
+ dmHistoryLimit: z.ZodOptional<z.ZodNumber>;
34
+ textChunkLimit: z.ZodOptional<z.ZodNumber>;
35
+ chunkMode: z.ZodOptional<z.ZodEnum<{
36
+ length: "length";
37
+ newline: "newline";
38
+ }>>;
39
+ blockStreaming: z.ZodOptional<z.ZodBoolean>;
40
+ streaming: z.ZodOptional<z.ZodBoolean>;
41
+ mediaMaxMb: z.ZodOptional<z.ZodNumber>;
42
+ responsePrefix: z.ZodOptional<z.ZodString>;
43
+ connectionMode: z.ZodOptional<z.ZodEnum<{
44
+ websocket: "websocket";
45
+ webhook: "webhook";
46
+ }>>;
47
+ webhookPort: z.ZodOptional<z.ZodNumber>;
48
+ webhookPath: z.ZodOptional<z.ZodString>;
49
+ topicSessionMode: z.ZodOptional<z.ZodEnum<{
50
+ enabled: "enabled";
51
+ disabled: "disabled";
52
+ always: "always";
53
+ mentioned: "mentioned";
54
+ }>>;
55
+ renderMode: z.ZodOptional<z.ZodEnum<{
56
+ auto: "auto";
57
+ text: "text";
58
+ card: "card";
59
+ raw: "raw";
60
+ }>>;
61
+ requireMention: z.ZodOptional<z.ZodBoolean>;
62
+ tools: z.ZodOptional<z.ZodAny>;
63
+ dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
64
+ dynamicAgentCreation: z.ZodOptional<z.ZodAny>;
65
+ groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{
66
+ enabled: z.ZodOptional<z.ZodBoolean>;
67
+ requireMention: z.ZodOptional<z.ZodBoolean>;
68
+ allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
69
+ tools: z.ZodOptional<z.ZodObject<{
70
+ allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
71
+ alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
72
+ deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
73
+ }, z.core.$strict>>;
74
+ toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{
75
+ allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
76
+ alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
77
+ deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
78
+ }, z.core.$strict>>>>;
79
+ systemPrompt: z.ZodOptional<z.ZodString>;
80
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
81
+ topicSessionMode: z.ZodOptional<z.ZodEnum<{
82
+ enabled: "enabled";
83
+ disabled: "disabled";
84
+ always: "always";
85
+ mentioned: "mentioned";
86
+ }>>;
87
+ }, z.core.$strict>>>>;
88
+ accounts: z.ZodOptional<z.ZodObject<{}, z.core.$catchall<z.ZodObject<{
89
+ name: z.ZodOptional<z.ZodString>;
90
+ enabled: z.ZodOptional<z.ZodBoolean>;
91
+ appId: z.ZodOptional<z.ZodString>;
92
+ appSecret: z.ZodOptional<z.ZodString>;
93
+ appSecretFile: z.ZodOptional<z.ZodString>;
94
+ encryptKey: z.ZodOptional<z.ZodString>;
95
+ verificationToken: z.ZodOptional<z.ZodString>;
96
+ domain: z.ZodOptional<z.ZodString>;
97
+ botName: z.ZodOptional<z.ZodString>;
98
+ markdown: z.ZodOptional<z.ZodObject<{
99
+ tables: z.ZodOptional<z.ZodEnum<{
100
+ off: "off";
101
+ bullets: "bullets";
102
+ code: "code";
103
+ }>>;
104
+ }, z.core.$strict>>;
105
+ dmPolicy: z.ZodOptional<z.ZodEnum<{
106
+ disabled: "disabled";
107
+ pairing: "pairing";
108
+ allowlist: "allowlist";
109
+ open: "open";
110
+ }>>;
111
+ groupPolicy: z.ZodOptional<z.ZodEnum<{
112
+ disabled: "disabled";
113
+ allowlist: "allowlist";
114
+ open: "open";
115
+ }>>;
116
+ allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
117
+ groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
118
+ historyLimit: z.ZodOptional<z.ZodNumber>;
119
+ dmHistoryLimit: z.ZodOptional<z.ZodNumber>;
120
+ textChunkLimit: z.ZodOptional<z.ZodNumber>;
121
+ chunkMode: z.ZodOptional<z.ZodEnum<{
122
+ length: "length";
123
+ newline: "newline";
124
+ }>>;
125
+ blockStreaming: z.ZodOptional<z.ZodBoolean>;
126
+ streaming: z.ZodOptional<z.ZodBoolean>;
127
+ mediaMaxMb: z.ZodOptional<z.ZodNumber>;
128
+ responsePrefix: z.ZodOptional<z.ZodString>;
129
+ connectionMode: z.ZodOptional<z.ZodEnum<{
130
+ websocket: "websocket";
131
+ webhook: "webhook";
132
+ }>>;
133
+ webhookPort: z.ZodOptional<z.ZodNumber>;
134
+ webhookPath: z.ZodOptional<z.ZodString>;
135
+ topicSessionMode: z.ZodOptional<z.ZodEnum<{
136
+ enabled: "enabled";
137
+ disabled: "disabled";
138
+ always: "always";
139
+ mentioned: "mentioned";
140
+ }>>;
141
+ renderMode: z.ZodOptional<z.ZodEnum<{
142
+ auto: "auto";
143
+ text: "text";
144
+ card: "card";
145
+ raw: "raw";
146
+ }>>;
147
+ requireMention: z.ZodOptional<z.ZodBoolean>;
148
+ tools: z.ZodOptional<z.ZodAny>;
149
+ dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
150
+ dynamicAgentCreation: z.ZodOptional<z.ZodAny>;
151
+ groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{
152
+ enabled: z.ZodOptional<z.ZodBoolean>;
153
+ requireMention: z.ZodOptional<z.ZodBoolean>;
154
+ allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
155
+ tools: z.ZodOptional<z.ZodObject<{
156
+ allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
157
+ alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
158
+ deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
159
+ }, z.core.$strict>>;
160
+ toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{
161
+ allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
162
+ alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>;
163
+ deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
164
+ }, z.core.$strict>>>>;
165
+ systemPrompt: z.ZodOptional<z.ZodString>;
166
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
167
+ topicSessionMode: z.ZodOptional<z.ZodEnum<{
168
+ enabled: "enabled";
169
+ disabled: "disabled";
170
+ always: "always";
171
+ mentioned: "mentioned";
172
+ }>>;
173
+ }, z.core.$strict>>>>;
174
+ }, z.core.$strict>>>>;
175
+ }, z.core.$strict>;
176
+ //# sourceMappingURL=config-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/config-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuDxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE7B,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { MarkdownConfigSchema, ToolPolicySchema } from "openclaw/plugin-sdk";
2
+ import { z } from "zod";
3
+ const allowFromEntry = z.union([z.string(), z.number()]);
4
+ const toolsBySenderSchema = z.record(z.string(), ToolPolicySchema).optional();
5
+ const FeishuGroupSchema = z
6
+ .object({
7
+ enabled: z.boolean().optional(),
8
+ requireMention: z.boolean().optional(),
9
+ allowFrom: z.array(allowFromEntry).optional(),
10
+ tools: ToolPolicySchema,
11
+ toolsBySender: toolsBySenderSchema,
12
+ systemPrompt: z.string().optional(),
13
+ skills: z.array(z.string()).optional(),
14
+ topicSessionMode: z.enum(["disabled", "enabled", "always", "mentioned"]).optional(),
15
+ })
16
+ .strict();
17
+ const FeishuAccountSchema = z
18
+ .object({
19
+ name: z.string().optional(),
20
+ enabled: z.boolean().optional(),
21
+ appId: z.string().optional(),
22
+ appSecret: z.string().optional(),
23
+ appSecretFile: z.string().optional(),
24
+ encryptKey: z.string().optional(),
25
+ verificationToken: z.string().optional(),
26
+ domain: z.string().optional(),
27
+ botName: z.string().optional(),
28
+ markdown: MarkdownConfigSchema,
29
+ dmPolicy: z.enum(["pairing", "allowlist", "open", "disabled"]).optional(),
30
+ groupPolicy: z.enum(["open", "allowlist", "disabled"]).optional(),
31
+ allowFrom: z.array(allowFromEntry).optional(),
32
+ groupAllowFrom: z.array(allowFromEntry).optional(),
33
+ historyLimit: z.number().optional(),
34
+ dmHistoryLimit: z.number().optional(),
35
+ textChunkLimit: z.number().optional(),
36
+ chunkMode: z.enum(["length", "newline"]).optional(),
37
+ blockStreaming: z.boolean().optional(),
38
+ streaming: z.boolean().optional(),
39
+ mediaMaxMb: z.number().optional(),
40
+ responsePrefix: z.string().optional(),
41
+ connectionMode: z.enum(["websocket", "webhook"]).optional(),
42
+ webhookPort: z.number().optional(),
43
+ webhookPath: z.string().optional(),
44
+ topicSessionMode: z.enum(["disabled", "enabled", "always", "mentioned"]).optional(),
45
+ renderMode: z.enum(["auto", "text", "card", "raw"]).optional(),
46
+ requireMention: z.boolean().optional(),
47
+ tools: z.any().optional(),
48
+ dms: z.record(z.string(), z.any()).optional(),
49
+ dynamicAgentCreation: z.any().optional(),
50
+ groups: z.record(z.string(), FeishuGroupSchema.optional()).optional(),
51
+ })
52
+ .strict();
53
+ export const FeishuConfigSchema = FeishuAccountSchema.extend({
54
+ accounts: z.object({}).catchall(FeishuAccountSchema).optional(),
55
+ });
56
+ //# sourceMappingURL=config-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/config-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { OpenClawConfig as ClawdbotConfig } from "openclaw/plugin-sdk";
2
+ export type FeishuDirectoryPeer = {
3
+ kind: "user";
4
+ id: string;
5
+ name?: string;
6
+ };
7
+ export type FeishuDirectoryGroup = {
8
+ kind: "group";
9
+ id: string;
10
+ name?: string;
11
+ };
12
+ export declare function listFeishuDirectoryPeers(params: {
13
+ cfg: ClawdbotConfig;
14
+ query?: string;
15
+ limit?: number;
16
+ accountId?: string;
17
+ }): Promise<FeishuDirectoryPeer[]>;
18
+ export declare function listFeishuDirectoryGroups(params: {
19
+ cfg: ClawdbotConfig;
20
+ query?: string;
21
+ limit?: number;
22
+ accountId?: string;
23
+ }): Promise<FeishuDirectoryGroup[]>;
24
+ export declare function listFeishuDirectoryPeersLive(params: {
25
+ cfg: ClawdbotConfig;
26
+ query?: string;
27
+ limit?: number;
28
+ accountId?: string;
29
+ }): Promise<FeishuDirectoryPeer[]>;
30
+ export declare function listFeishuDirectoryGroupsLive(params: {
31
+ cfg: ClawdbotConfig;
32
+ query?: string;
33
+ limit?: number;
34
+ accountId?: string;
35
+ }): Promise<FeishuDirectoryGroup[]>;
36
+ //# sourceMappingURL=directory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,MAAM,EAAE;IACrD,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA2BjC;AAED,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA0BlC;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE;IACzD,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAwCjC;AAED,wBAAsB,6BAA6B,CAAC,MAAM,EAAE;IAC1D,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAwClC"}
@@ -0,0 +1,129 @@
1
+ import { resolveFeishuAccount } from "./accounts.js";
2
+ import { createFeishuClient } from "./client.js";
3
+ import { normalizeFeishuTarget } from "./targets.js";
4
+ export async function listFeishuDirectoryPeers(params) {
5
+ const account = resolveFeishuAccount({ cfg: params.cfg, accountId: params.accountId });
6
+ const feishuCfg = account.config;
7
+ const q = params.query?.trim().toLowerCase() || "";
8
+ const ids = new Set();
9
+ for (const entry of feishuCfg?.allowFrom ?? []) {
10
+ const trimmed = String(entry).trim();
11
+ if (trimmed && trimmed !== "*") {
12
+ ids.add(trimmed);
13
+ }
14
+ }
15
+ for (const userId of Object.keys(feishuCfg?.dms ?? {})) {
16
+ const trimmed = userId.trim();
17
+ if (trimmed) {
18
+ ids.add(trimmed);
19
+ }
20
+ }
21
+ return Array.from(ids)
22
+ .map((raw) => raw.trim())
23
+ .filter(Boolean)
24
+ .map((raw) => normalizeFeishuTarget(raw) ?? raw)
25
+ .filter((id) => (q ? id.toLowerCase().includes(q) : true))
26
+ .slice(0, params.limit && params.limit > 0 ? params.limit : undefined)
27
+ .map((id) => ({ kind: "user", id }));
28
+ }
29
+ export async function listFeishuDirectoryGroups(params) {
30
+ const account = resolveFeishuAccount({ cfg: params.cfg, accountId: params.accountId });
31
+ const feishuCfg = account.config;
32
+ const q = params.query?.trim().toLowerCase() || "";
33
+ const ids = new Set();
34
+ for (const groupId of Object.keys(feishuCfg?.groups ?? {})) {
35
+ const trimmed = groupId.trim();
36
+ if (trimmed && trimmed !== "*") {
37
+ ids.add(trimmed);
38
+ }
39
+ }
40
+ for (const entry of feishuCfg?.groupAllowFrom ?? []) {
41
+ const trimmed = String(entry).trim();
42
+ if (trimmed && trimmed !== "*") {
43
+ ids.add(trimmed);
44
+ }
45
+ }
46
+ return Array.from(ids)
47
+ .map((raw) => raw.trim())
48
+ .filter(Boolean)
49
+ .filter((id) => (q ? id.toLowerCase().includes(q) : true))
50
+ .slice(0, params.limit && params.limit > 0 ? params.limit : undefined)
51
+ .map((id) => ({ kind: "group", id }));
52
+ }
53
+ export async function listFeishuDirectoryPeersLive(params) {
54
+ const account = resolveFeishuAccount({ cfg: params.cfg, accountId: params.accountId });
55
+ if (!account.configured) {
56
+ return listFeishuDirectoryPeers(params);
57
+ }
58
+ try {
59
+ const client = createFeishuClient(account);
60
+ const peers = [];
61
+ const limit = params.limit ?? 50;
62
+ const response = await client.contact.user.list({
63
+ params: {
64
+ page_size: Math.min(limit, 50),
65
+ },
66
+ });
67
+ if (response.code === 0 && response.data?.items) {
68
+ for (const user of response.data.items) {
69
+ if (user.open_id) {
70
+ const q = params.query?.trim().toLowerCase() || "";
71
+ const name = user.name || "";
72
+ if (!q || user.open_id.toLowerCase().includes(q) || name.toLowerCase().includes(q)) {
73
+ peers.push({
74
+ kind: "user",
75
+ id: user.open_id,
76
+ name: name || undefined,
77
+ });
78
+ }
79
+ }
80
+ if (peers.length >= limit) {
81
+ break;
82
+ }
83
+ }
84
+ }
85
+ return peers;
86
+ }
87
+ catch {
88
+ return listFeishuDirectoryPeers(params);
89
+ }
90
+ }
91
+ export async function listFeishuDirectoryGroupsLive(params) {
92
+ const account = resolveFeishuAccount({ cfg: params.cfg, accountId: params.accountId });
93
+ if (!account.configured) {
94
+ return listFeishuDirectoryGroups(params);
95
+ }
96
+ try {
97
+ const client = createFeishuClient(account);
98
+ const groups = [];
99
+ const limit = params.limit ?? 50;
100
+ const response = await client.im.chat.list({
101
+ params: {
102
+ page_size: Math.min(limit, 100),
103
+ },
104
+ });
105
+ if (response.code === 0 && response.data?.items) {
106
+ for (const chat of response.data.items) {
107
+ if (chat.chat_id) {
108
+ const q = params.query?.trim().toLowerCase() || "";
109
+ const name = chat.name || "";
110
+ if (!q || chat.chat_id.toLowerCase().includes(q) || name.toLowerCase().includes(q)) {
111
+ groups.push({
112
+ kind: "group",
113
+ id: chat.chat_id,
114
+ name: name || undefined,
115
+ });
116
+ }
117
+ }
118
+ if (groups.length >= limit) {
119
+ break;
120
+ }
121
+ }
122
+ }
123
+ return groups;
124
+ }
125
+ catch {
126
+ return listFeishuDirectoryGroups(params);
127
+ }
128
+ }
129
+ //# sourceMappingURL=directory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/directory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const FeishuDocSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
3
+ action: import("@sinclair/typebox").TLiteral<"read">;
4
+ doc_token: import("@sinclair/typebox").TString;
5
+ }>, import("@sinclair/typebox").TObject<{
6
+ action: import("@sinclair/typebox").TLiteral<"write">;
7
+ doc_token: import("@sinclair/typebox").TString;
8
+ content: import("@sinclair/typebox").TString;
9
+ }>, import("@sinclair/typebox").TObject<{
10
+ action: import("@sinclair/typebox").TLiteral<"append">;
11
+ doc_token: import("@sinclair/typebox").TString;
12
+ content: import("@sinclair/typebox").TString;
13
+ }>, import("@sinclair/typebox").TObject<{
14
+ action: import("@sinclair/typebox").TLiteral<"create">;
15
+ title: import("@sinclair/typebox").TString;
16
+ folder_token: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
17
+ content: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
18
+ sender_open_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
19
+ }>, import("@sinclair/typebox").TObject<{
20
+ action: import("@sinclair/typebox").TLiteral<"list_blocks">;
21
+ doc_token: import("@sinclair/typebox").TString;
22
+ }>, import("@sinclair/typebox").TObject<{
23
+ action: import("@sinclair/typebox").TLiteral<"get_block">;
24
+ doc_token: import("@sinclair/typebox").TString;
25
+ block_id: import("@sinclair/typebox").TString;
26
+ }>, import("@sinclair/typebox").TObject<{
27
+ action: import("@sinclair/typebox").TLiteral<"update_block">;
28
+ doc_token: import("@sinclair/typebox").TString;
29
+ block_id: import("@sinclair/typebox").TString;
30
+ content: import("@sinclair/typebox").TString;
31
+ }>, import("@sinclair/typebox").TObject<{
32
+ action: import("@sinclair/typebox").TLiteral<"delete_block">;
33
+ doc_token: import("@sinclair/typebox").TString;
34
+ block_id: import("@sinclair/typebox").TString;
35
+ }>]>;
36
+ export type FeishuDocParams = Static<typeof FeishuDocSchema>;
37
+ //# sourceMappingURL=doc-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-schema.d.ts","sourceRoot":"","sources":["../../src/doc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsD1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ export const FeishuDocSchema = Type.Union([
3
+ Type.Object({
4
+ action: Type.Literal("read"),
5
+ doc_token: Type.String({ description: "Document token (extract from URL /docx/XXX)" }),
6
+ }),
7
+ Type.Object({
8
+ action: Type.Literal("write"),
9
+ doc_token: Type.String({ description: "Document token" }),
10
+ content: Type.String({
11
+ description: "Markdown content to write (replaces entire document content)",
12
+ }),
13
+ }),
14
+ Type.Object({
15
+ action: Type.Literal("append"),
16
+ doc_token: Type.String({ description: "Document token" }),
17
+ content: Type.String({ description: "Markdown content to append to end of document" }),
18
+ }),
19
+ Type.Object({
20
+ action: Type.Literal("create"),
21
+ title: Type.String({ description: "Document title" }),
22
+ folder_token: Type.Optional(Type.String({ description: "Target folder token (optional)" })),
23
+ content: Type.Optional(Type.String({
24
+ description: "Markdown content to write into the document after creation. If provided, the document will be created and filled in one step.",
25
+ })),
26
+ sender_open_id: Type.Optional(Type.String({
27
+ description: "The open_id (ou_xxx) of the user who requested document creation. When provided, the user will automatically be granted full_access permission to the new document.",
28
+ })),
29
+ }),
30
+ Type.Object({
31
+ action: Type.Literal("list_blocks"),
32
+ doc_token: Type.String({ description: "Document token" }),
33
+ }),
34
+ Type.Object({
35
+ action: Type.Literal("get_block"),
36
+ doc_token: Type.String({ description: "Document token" }),
37
+ block_id: Type.String({ description: "Block ID (from list_blocks)" }),
38
+ }),
39
+ Type.Object({
40
+ action: Type.Literal("update_block"),
41
+ doc_token: Type.String({ description: "Document token" }),
42
+ block_id: Type.String({ description: "Block ID (from list_blocks)" }),
43
+ content: Type.String({ description: "New text content" }),
44
+ }),
45
+ Type.Object({
46
+ action: Type.Literal("delete_block"),
47
+ doc_token: Type.String({ description: "Document token" }),
48
+ block_id: Type.String({ description: "Block ID" }),
49
+ }),
50
+ ]);
51
+ //# sourceMappingURL=doc-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-schema.js","sourceRoot":"","sources":["../../src/doc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AAEtD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC;QACV,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC;KACvF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,8DAA8D;SAC5E,CAAC;KACH,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC9B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;KACvF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC9B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACrD,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,CAAC;QAC3F,OAAO,EAAE,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,MAAM,CAAC;YACV,WAAW,EACT,+HAA+H;SAClI,CAAC,CACH;QACD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAC3B,IAAI,CAAC,MAAM,CAAC;YACV,WAAW,EACT,qKAAqK;SACxK,CAAC,CACH;KACF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QACnC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;KAC1D,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACjC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACzD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;KACtE,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACzD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;QACrE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;KAC1D,CAAC;IACF,IAAI,CAAC,MAAM,CAAC;QACV,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACzD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;KACnD,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { OpenClawPluginApi } from "openclaw/plugin-sdk";
2
+ export declare function registerFeishuDocTools(api: OpenClawPluginApi): void;
3
+ //# sourceMappingURL=docx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docx.d.ts","sourceRoot":"","sources":["../../src/docx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA6kB7D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,QAyI5D"}