@clowder-ai/connector-dingtalk 0.0.0-stage → 0.1.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +54 -0
- package/README.md +24 -2
- package/assets/icon.svg +4 -0
- package/dist/DingTalkAdapter.d.ts +251 -0
- package/dist/DingTalkAdapter.d.ts.map +1 -0
- package/dist/DingTalkAdapter.js +821 -0
- package/dist/DingTalkAdapter.js.map +1 -0
- package/dist/command-ingress.d.ts +10 -0
- package/dist/command-ingress.d.ts.map +1 -0
- package/dist/command-ingress.js +15 -0
- package/dist/command-ingress.js.map +1 -0
- package/dist/execution-status.d.ts +27 -0
- package/dist/execution-status.d.ts.map +1 -0
- package/dist/execution-status.js +48 -0
- package/dist/execution-status.js.map +1 -0
- package/dist/inbound-download.d.ts +13 -0
- package/dist/inbound-download.d.ts.map +1 -0
- package/dist/inbound-download.js +70 -0
- package/dist/inbound-download.js.map +1 -0
- package/dist/inbound-media-source.d.ts +25 -0
- package/dist/inbound-media-source.d.ts.map +1 -0
- package/dist/inbound-media-source.js +115 -0
- package/dist/inbound-media-source.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle-action.d.ts +30 -0
- package/dist/lifecycle-action.d.ts.map +1 -0
- package/dist/lifecycle-action.js +457 -0
- package/dist/lifecycle-action.js.map +1 -0
- package/dist/materialize-media.d.ts +7 -0
- package/dist/materialize-media.d.ts.map +1 -0
- package/dist/materialize-media.js +35 -0
- package/dist/materialize-media.js.map +1 -0
- package/dist/media-notice.d.ts +6 -0
- package/dist/media-notice.d.ts.map +1 -0
- package/dist/media-notice.js +50 -0
- package/dist/media-notice.js.map +1 -0
- package/dist/plugin-entrypoint.d.ts +7 -0
- package/dist/plugin-entrypoint.d.ts.map +1 -0
- package/dist/plugin-entrypoint.js +282 -0
- package/dist/plugin-entrypoint.js.map +1 -0
- package/dist/reply-sender-map.d.ts +10 -0
- package/dist/reply-sender-map.d.ts.map +1 -0
- package/dist/reply-sender-map.js +123 -0
- package/dist/reply-sender-map.js.map +1 -0
- package/dist/runtime.d.ts +68 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +167 -0
- package/dist/runtime.js.map +1 -0
- package/dist/thread-mappings.d.ts +46 -0
- package/dist/thread-mappings.d.ts.map +1 -0
- package/dist/thread-mappings.js +62 -0
- package/dist/thread-mappings.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/npm-shrinkwrap.json +485 -0
- package/package.json +55 -4
- package/plugin.yaml +63 -0
package/README.en.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# DingTalk Connector
|
|
2
|
+
|
|
3
|
+
[Chinese](README.md) · English
|
|
4
|
+
|
|
5
|
+
`@clowder-ai/connector-dingtalk` packages DingTalk Stream ingress and OpenAPI/AI Card egress for a Clowder AI
|
|
6
|
+
Host. It parses direct and group messages, preserves provider message IDs and media download codes, sends
|
|
7
|
+
bounded text/markdown/media replies, and shuts down the Stream client during Host drain.
|
|
8
|
+
|
|
9
|
+
## Authority boundary
|
|
10
|
+
|
|
11
|
+
The Host owns installation, grants, configuration and secrets, connector-to-thread bindings, admission,
|
|
12
|
+
wake routing, retry/dead-letter policy, and lifecycle supervision. The package never parses `@` text to
|
|
13
|
+
invent wake authority and never mints a connector-binding handle. It requires the Host to supply a verified
|
|
14
|
+
opaque `connector_binding` handle for inbound delivery and the corresponding external DingTalk coordinate
|
|
15
|
+
for outbound delivery and restart recovery.
|
|
16
|
+
|
|
17
|
+
## Configuration
|
|
18
|
+
|
|
19
|
+
- `appKey` is the DingTalk enterprise application App Key.
|
|
20
|
+
- `appSecret` is a secret and must be projected only from the manifest-declared Host configuration.
|
|
21
|
+
|
|
22
|
+
The package does not read a repository `.env` file and does not persist credentials. DingTalk access tokens
|
|
23
|
+
remain runtime-ephemeral. Group conversation identifiers may be checkpointed only through a Host-owned
|
|
24
|
+
store injected into the adapter.
|
|
25
|
+
|
|
26
|
+
Inbound provider media locators are retained only in the package's manifest-declared private state. The
|
|
27
|
+
public message carries a `pmr_*` reference and `sourceEventId`; the Host reads bounded chunks through the
|
|
28
|
+
declared media source, then settlement removes the private locator.
|
|
29
|
+
|
|
30
|
+
## Safety and recovery
|
|
31
|
+
|
|
32
|
+
Provider HTTP errors fail closed. Media upload and download responses are bounded by the provider contract;
|
|
33
|
+
error text must not include credentials. Disabling or draining the plugin closes the Stream connection before
|
|
34
|
+
the preserved Core adapter can be restored, preventing double consumption.
|
|
35
|
+
|
|
36
|
+
The Host-loadable builtin runtime is implemented in this package and consumes only the existing Host-owned
|
|
37
|
+
config/secret, binding, state, and messaging surfaces. Adapter exports are usable for isolated provider
|
|
38
|
+
conformance tests without claiming that synthetic handles constitute production activation.
|
|
39
|
+
|
|
40
|
+
## Commands and configuration
|
|
41
|
+
|
|
42
|
+
The builtin entrypoint intercepts `/where`, `/new`, `/threads`, `/use`, `/thread`, `/commands`, `/cats`,
|
|
43
|
+
`/status`, `/history`, `/unbind`, `/allow-group`, `/deny-group`, `/focus`, and `/ask` before ordinary ingress.
|
|
44
|
+
Commands reply through the provider and keep their audit quiet. Only an explicit body in `/thread` or
|
|
45
|
+
`/ask` requests Agent invocation; successful delivery is acknowledged only after the Host accepts it.
|
|
46
|
+
`/use` traverses the owner-visible live thread inventory beyond the first 50 rows, deduplicates IDs and
|
|
47
|
+
rejects a non-progressing or exhausted traversal instead of selecting from an incomplete list.
|
|
48
|
+
|
|
49
|
+
Group whitelist, administrators and the group-command restriction keep their original configuration semantics.
|
|
50
|
+
Use normal configuration controls; no permission JSON, separate initialization or legacy import is required.
|
|
51
|
+
The initial group whitelist and command restriction are off and the administrator list is empty.
|
|
52
|
+
Group management commands still require an explicitly configured administrator; an empty list grants nobody administration.
|
|
53
|
+
|
|
54
|
+
The Host owns installation, grants, credentials and lifecycle; saving configuration preserves enable intent. The language link opens a separate document and does not imply automatic language selection.
|
package/README.md
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 钉钉连接器
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
简体中文 · [English](README.en.md)
|
|
4
|
+
|
|
5
|
+
将钉钉企业应用的私聊和群聊接入 Clowder AI,支持 Stream 收消息、文本和 Markdown 回复、媒体传输与 AI 卡片。
|
|
6
|
+
|
|
7
|
+
## 开始使用
|
|
8
|
+
|
|
9
|
+
1. 在钉钉创建企业应用,取得 `appKey` 和 `appSecret`。
|
|
10
|
+
2. 在插件设置中填写应用凭据并保存,再启用插件建立 Stream 连接。密钥由宿主保管,不要放进聊天或仓库文件。
|
|
11
|
+
3. 向应用发送消息;使用下方命令查看或切换关联的对话。
|
|
12
|
+
|
|
13
|
+
群白名单、管理员及群命令限制在正常配置页设置。默认白名单与群命令限制关闭,管理员列表为空。群管理命令始终要求明确配置的管理员,空列表不会授予任何人管理权。
|
|
14
|
+
|
|
15
|
+
## 消息与恢复
|
|
16
|
+
|
|
17
|
+
保留钉钉消息标识,按平台限制分段发送回复。媒体通过宿主授权的引用读取;私有下载坐标不会进入公开消息。停用时关闭 Stream 连接;再次启用沿用宿主持久状态,避免与另一份连接器同时消费消息。
|
|
18
|
+
|
|
19
|
+
## 对话命令
|
|
20
|
+
|
|
21
|
+
可使用 `/where`、`/new`、`/threads`、`/use`、`/thread`、`/commands`、`/cats`、`/status`、`/history`、`/unbind`、`/focus` 和 `/ask` 查看位置、切换对话或发起请求。`/thread`、`/ask` 只有显式携带正文时才请求猫执行,宿主接受投递后才确认成功。`/use` 会遍历可见对话,列表不完整时不猜测选择。
|
|
22
|
+
|
|
23
|
+
`/allow-group`、`/deny-group` 仅适用于支持群聊且已配置管理员的连接器,不能通过普通私聊文本取得管理权。
|
|
24
|
+
|
|
25
|
+
宿主管理安装、授权、凭据和启停;配置保存不自动改变启用意图。英文文档是独立文件,互链不代表页面已支持自动语言切换。
|
package/assets/icon.svg
ADDED
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DingTalk (钉钉) Enterprise Bot Adapter
|
|
3
|
+
* Inbound: Parse Stream events → extract DM messages
|
|
4
|
+
* Outbound: Send reply via DingTalk OpenAPI + AI Card streaming
|
|
5
|
+
*
|
|
6
|
+
* Uses dingtalk-stream for Stream mode (no public URL needed).
|
|
7
|
+
* AI Card for rich/streaming replies (create → streaming update → finish).
|
|
8
|
+
*
|
|
9
|
+
* F132 DingTalk + WeCom Chat Gateway — Phase A
|
|
10
|
+
*/
|
|
11
|
+
export declare const DINGTALK_MEDIA_MAX_BYTES: {
|
|
12
|
+
readonly image: 20000000;
|
|
13
|
+
readonly file: 20000000;
|
|
14
|
+
readonly audio: 2000000;
|
|
15
|
+
};
|
|
16
|
+
import type { ConnectorLogger, MessageEnvelope, RichBlock } from './types.js';
|
|
17
|
+
export interface DingTalkAttachment {
|
|
18
|
+
type: 'image' | 'file' | 'audio';
|
|
19
|
+
/** DingTalk media download code (for images/files/audio) */
|
|
20
|
+
downloadCode?: string;
|
|
21
|
+
fileName?: string;
|
|
22
|
+
duration?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface DingTalkInboundMessage {
|
|
25
|
+
/** DM: staffId | Group: openConversationId */
|
|
26
|
+
chatId: string;
|
|
27
|
+
/** DingTalk conversationId — used for AI Card delivery routing */
|
|
28
|
+
conversationId: string;
|
|
29
|
+
text: string;
|
|
30
|
+
messageId: string;
|
|
31
|
+
senderId: string;
|
|
32
|
+
chatType: 'p2p' | 'group';
|
|
33
|
+
/** Group: sender's display name from webhook payload */
|
|
34
|
+
senderNick?: string;
|
|
35
|
+
/** Group: chat title from webhook payload */
|
|
36
|
+
conversationTitle?: string;
|
|
37
|
+
attachments?: DingTalkAttachment[];
|
|
38
|
+
}
|
|
39
|
+
export interface DingTalkAdapterOptions {
|
|
40
|
+
appKey: string;
|
|
41
|
+
appSecret: string;
|
|
42
|
+
/** Robot code (used for sending messages), defaults to appKey */
|
|
43
|
+
robotCode?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Total budget for one startStream connection attempt (connect() race plus
|
|
46
|
+
* the connected/registered liveness poll share this one deadline; default
|
|
47
|
+
* 30s). Tests inject a short value instead of fake timers.
|
|
48
|
+
*/
|
|
49
|
+
streamConnectTimeoutMs?: number;
|
|
50
|
+
}
|
|
51
|
+
/** Minimal surface of the dingtalk-stream client the adapter relies on. */
|
|
52
|
+
export interface DingTalkStreamClient {
|
|
53
|
+
connected: boolean;
|
|
54
|
+
registered: boolean;
|
|
55
|
+
registerCallbackListener(topic: string, handler: (res: unknown) => Promise<void>): void;
|
|
56
|
+
connect(): Promise<unknown>;
|
|
57
|
+
disconnect(): void;
|
|
58
|
+
socketCallBackResponse(messageId: string, ack: unknown): void;
|
|
59
|
+
}
|
|
60
|
+
export interface DingTalkStreamModule {
|
|
61
|
+
DWClient: new (config: Record<string, unknown>) => DingTalkStreamClient;
|
|
62
|
+
EventAck: {
|
|
63
|
+
SUCCESS: string;
|
|
64
|
+
};
|
|
65
|
+
TOPIC_ROBOT: string;
|
|
66
|
+
}
|
|
67
|
+
/** AI Card streaming state machine */
|
|
68
|
+
type CardState = 'PROCESSING' | 'INPUTING' | 'FINISHED';
|
|
69
|
+
export declare class DingTalkAdapter {
|
|
70
|
+
readonly connectorId = "dingtalk";
|
|
71
|
+
private readonly log;
|
|
72
|
+
private readonly appKey;
|
|
73
|
+
private readonly appSecret;
|
|
74
|
+
private readonly robotCode;
|
|
75
|
+
private streamClient;
|
|
76
|
+
private stopFn;
|
|
77
|
+
private streamGeneration;
|
|
78
|
+
private readonly activeCards;
|
|
79
|
+
private readonly staffToConversation;
|
|
80
|
+
private readonly groupConversationIds;
|
|
81
|
+
private readonly senderNickCache;
|
|
82
|
+
private readonly conversationTitleCache;
|
|
83
|
+
private streamModuleOverride;
|
|
84
|
+
private sendMessageFn;
|
|
85
|
+
private createCardFn;
|
|
86
|
+
private streamingCardFn;
|
|
87
|
+
private accessTokenFn;
|
|
88
|
+
private downloadMediaFn;
|
|
89
|
+
private uploadMediaFn;
|
|
90
|
+
private inboundFetchFn;
|
|
91
|
+
private inboundMediaTimeoutMs;
|
|
92
|
+
private readonly streamConnectTimeoutMs;
|
|
93
|
+
constructor(log: ConnectorLogger, options: DingTalkAdapterOptions);
|
|
94
|
+
/**
|
|
95
|
+
* G1/N1: the SDK retries a revoked-credential or dropped stream silently,
|
|
96
|
+
* so 'startStream resolved once' is not proof of a live stream. This asks
|
|
97
|
+
* the client itself and requires BOTH flags: `connected` is the WebSocket
|
|
98
|
+
* session, `registered` is the robot registration frame — the SDK sets it
|
|
99
|
+
* only on the REGISTERED system topic and clears both on close
|
|
100
|
+
* (dist/client.mjs). A connect-only socket that never registered is dead
|
|
101
|
+
* for ingress purposes.
|
|
102
|
+
*/
|
|
103
|
+
isStreamLive(): boolean;
|
|
104
|
+
private loadStreamModule;
|
|
105
|
+
/**
|
|
106
|
+
* Parse a DingTalk Stream bot message callback into an inbound message.
|
|
107
|
+
* Supports text, richText, picture, audio, file message types.
|
|
108
|
+
* Returns null for group or unsupported events.
|
|
109
|
+
*
|
|
110
|
+
* AC-A1: DM text + richText parsing
|
|
111
|
+
*/
|
|
112
|
+
parseEvent(eventBody: unknown): DingTalkInboundMessage | null;
|
|
113
|
+
/**
|
|
114
|
+
* Resolve sender display name from cached inbound event data.
|
|
115
|
+
* DingTalk group webhooks include senderNick, so no API call needed.
|
|
116
|
+
*/
|
|
117
|
+
resolveSenderName(staffId: string): string | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* Resolve group conversation title from cached inbound event data.
|
|
120
|
+
* DingTalk group webhooks include conversationTitle, so no API call needed.
|
|
121
|
+
*/
|
|
122
|
+
resolveConversationTitle(openConversationId: string): string | undefined;
|
|
123
|
+
/**
|
|
124
|
+
* Prepend @sender mention for group chat replies (AC-A2.4).
|
|
125
|
+
* Only used for group chats — DM replies must NOT @mention (Feishu AC-C2 pattern).
|
|
126
|
+
*/
|
|
127
|
+
private prependAtSender;
|
|
128
|
+
/**
|
|
129
|
+
* Send a plain text reply via DingTalk Robot API.
|
|
130
|
+
* AC-A2: Basic text + markdown sending
|
|
131
|
+
*/
|
|
132
|
+
sendReply(externalChatId: string, content: string, metadata?: Record<string, unknown>): Promise<void>;
|
|
133
|
+
/**
|
|
134
|
+
* Send a markdown reply.
|
|
135
|
+
*/
|
|
136
|
+
sendMarkdown(externalChatId: string, title: string, text: string, chatTypeOverride?: 'p2p' | 'group'): Promise<void>;
|
|
137
|
+
/**
|
|
138
|
+
* Send a rich block message (convert blocks to markdown text).
|
|
139
|
+
*/
|
|
140
|
+
sendRichMessage(externalChatId: string, textContent: string, _blocks: RichBlock[], catDisplayName: string, metadata?: Record<string, unknown>): Promise<void>;
|
|
141
|
+
/**
|
|
142
|
+
* Send a formatted reply as AI Card.
|
|
143
|
+
* AC-A3: AI Card with cat name header + body + deep link
|
|
144
|
+
*/
|
|
145
|
+
sendFormattedReply(externalChatId: string, envelope: MessageEnvelope, metadata?: Record<string, unknown>): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* Send a placeholder AI Card and return its outTrackId.
|
|
148
|
+
* AC-A4: AI Card streaming (create phase)
|
|
149
|
+
*/
|
|
150
|
+
sendPlaceholder(externalChatId: string, text: string): Promise<string>;
|
|
151
|
+
/**
|
|
152
|
+
* Edit an AI Card via streaming update.
|
|
153
|
+
* AC-A4: AI Card streaming (update phase, 300ms throttle)
|
|
154
|
+
*/
|
|
155
|
+
editMessage(_externalChatId: string, platformMessageId: string, text: string, options?: {
|
|
156
|
+
readonly bypassThrottle?: boolean;
|
|
157
|
+
}): Promise<boolean>;
|
|
158
|
+
/**
|
|
159
|
+
* Delete/finish an AI Card (transition to FINISHED state).
|
|
160
|
+
* StreamingOutboundHook calls this for cleanup.
|
|
161
|
+
*/
|
|
162
|
+
deleteMessage(platformMessageId: string, finalContent?: string): Promise<void>;
|
|
163
|
+
/**
|
|
164
|
+
* Send a media message (image, file, audio).
|
|
165
|
+
* AC-A5: Media upload + send
|
|
166
|
+
*/
|
|
167
|
+
sendMedia(externalChatId: string, payload: {
|
|
168
|
+
type: 'image' | 'file' | 'audio';
|
|
169
|
+
content: AsyncIterable<Uint8Array>;
|
|
170
|
+
fileName?: string;
|
|
171
|
+
duration?: number;
|
|
172
|
+
}): Promise<void>;
|
|
173
|
+
/**
|
|
174
|
+
* Download media file from an inbound message using its downloadCode.
|
|
175
|
+
* Returns a temporary download URL.
|
|
176
|
+
* AC-A5: Inbound media download via POST /v1.0/robot/messageFiles/download
|
|
177
|
+
*/
|
|
178
|
+
downloadMedia(downloadCode: string, signal?: AbortSignal): Promise<string>;
|
|
179
|
+
downloadInboundMedia(locator: {
|
|
180
|
+
readonly platformKey: string;
|
|
181
|
+
}): Promise<Buffer>;
|
|
182
|
+
/**
|
|
183
|
+
* Start the DingTalk Stream connection (long-lived, like Telegram polling).
|
|
184
|
+
* Calls onMessage for each inbound bot message.
|
|
185
|
+
* AC-A7: Stream connection + reconnect + dedup
|
|
186
|
+
*/
|
|
187
|
+
startStream(onMessage: (msg: DingTalkInboundMessage) => Promise<void>): Promise<void>;
|
|
188
|
+
/**
|
|
189
|
+
* Stop the Stream connection.
|
|
190
|
+
*/
|
|
191
|
+
stopStream(): Promise<void>;
|
|
192
|
+
private postRobotMessage;
|
|
193
|
+
private sendDingTalkMessage;
|
|
194
|
+
private uploadToDingTalk;
|
|
195
|
+
private sendDingTalkMediaMessage;
|
|
196
|
+
/**
|
|
197
|
+
* Create an AI Card instance and deliver it.
|
|
198
|
+
* POST /v1.0/card/instances/createAndDeliver
|
|
199
|
+
*/
|
|
200
|
+
private createAICardInstance;
|
|
201
|
+
/**
|
|
202
|
+
* Update an AI Card streaming content.
|
|
203
|
+
* PUT /v1.0/card/streaming
|
|
204
|
+
* State machine: PROCESSING → INPUTING → FINISHED
|
|
205
|
+
*/
|
|
206
|
+
private updateAICardStreaming;
|
|
207
|
+
/**
|
|
208
|
+
* Send an AI Card with title and markdown body (non-streaming, single shot).
|
|
209
|
+
*/
|
|
210
|
+
private sendAICard;
|
|
211
|
+
/**
|
|
212
|
+
* Get DingTalk access token (cached, 2h TTL).
|
|
213
|
+
*/
|
|
214
|
+
private cachedToken;
|
|
215
|
+
private getAccessToken;
|
|
216
|
+
/** @internal */
|
|
217
|
+
_injectSendMessage(fn: (params: {
|
|
218
|
+
chatId: string;
|
|
219
|
+
content: string;
|
|
220
|
+
msgType: string;
|
|
221
|
+
chatType?: 'p2p' | 'group';
|
|
222
|
+
}) => Promise<unknown>): void;
|
|
223
|
+
/** @internal */
|
|
224
|
+
_injectCreateCard(fn: (params: {
|
|
225
|
+
outTrackId: string;
|
|
226
|
+
cardData: Record<string, unknown>;
|
|
227
|
+
}) => Promise<unknown>): void;
|
|
228
|
+
/** @internal */
|
|
229
|
+
_injectStreamingCard(fn: (params: {
|
|
230
|
+
outTrackId: string;
|
|
231
|
+
content: string;
|
|
232
|
+
state: CardState;
|
|
233
|
+
}) => Promise<unknown>): void;
|
|
234
|
+
/** @internal */
|
|
235
|
+
_injectAccessToken(fn: () => Promise<string>): void;
|
|
236
|
+
/** @internal */
|
|
237
|
+
_injectDownloadMedia(fn: (downloadCode: string) => Promise<string>): void;
|
|
238
|
+
/** @internal */
|
|
239
|
+
_injectInboundFetch(fn: typeof fetch): void;
|
|
240
|
+
/** @internal */
|
|
241
|
+
_injectInboundMediaTimeout(timeoutMs: number): void;
|
|
242
|
+
/** @internal */
|
|
243
|
+
_injectUploadMedia(fn: (params: {
|
|
244
|
+
filePath: string;
|
|
245
|
+
type: string;
|
|
246
|
+
}) => Promise<string>): void;
|
|
247
|
+
/** @internal Test seam: replace the dynamic `dingtalk-stream` import. */
|
|
248
|
+
_injectStreamModule(module_: DingTalkStreamModule): void;
|
|
249
|
+
}
|
|
250
|
+
export {};
|
|
251
|
+
//# sourceMappingURL=DingTalkAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DingTalkAdapter.d.ts","sourceRoot":"","sources":["../src/DingTalkAdapter.ts"],"names":[],"mappings":"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"}
|