@qwen-code/channel-dingtalk 0.22.3 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-card-client.d.ts","sourceRoot":"","sources":["../src/interactive-card-client.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,gDACW,CAAC;AAChD,eAAO,MAAM,yBAAyB,gDACS,CAAC;AAKhD,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7C,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,oCAAoC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAaD,qBAAa,6BAA6B;IAG5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAER,OAAO,EAAE,oCAAoC;IAIpE,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DvD,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzD,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAU7C,OAAO;CAwBtB"}
1
+ {"version":3,"file":"interactive-card-client.d.ts","sourceRoot":"","sources":["../src/interactive-card-client.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,gDACW,CAAC;AAChD,eAAO,MAAM,yBAAyB,gDACS,CAAC;AAchD,qBAAa,wBAAyB,SAAQ,KAAK;IAG/C,QAAQ,CAAC,SAAS,EAAE,OAAO;gBAD3B,OAAO,EAAE,MAAM,EACN,SAAS,EAAE,OAAO;CAK9B;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpE;AAED,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7C,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,oCAAoC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAaD,qBAAa,6BAA6B;IAG5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAER,OAAO,EAAE,oCAAoC;IAIpE,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DvD,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzD,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAU7C,OAAO;CAgCtB"}
@@ -3,6 +3,23 @@ export const STATUS_CARD_TEMPLATE_ID = '675cde2f-f526-40cb-b828-f5b2b57b8b77.sch
3
3
  export const QUESTION_CARD_TEMPLATE_ID = 'c2a6355b-9724-4f7e-9653-d33fcb3311bb.schema';
4
4
  const DINGTALK_API = 'https://api.dingtalk.com';
5
5
  const CARD_FETCH_TIMEOUT_MS = 10_000;
6
+ function isRetryableStatus(status) {
7
+ return (status === 408 ||
8
+ status === 425 ||
9
+ status === 429 ||
10
+ (status >= 500 && status <= 599));
11
+ }
12
+ export class DingtalkCardRequestError extends Error {
13
+ retryable;
14
+ constructor(message, retryable) {
15
+ super(message);
16
+ this.retryable = retryable;
17
+ this.name = 'DingtalkCardRequestError';
18
+ }
19
+ }
20
+ export function isRetryableDingtalkCardError(error) {
21
+ return !(error instanceof DingtalkCardRequestError) || error.retryable;
22
+ }
6
23
  function stringifyCardParamMap(cardParamMap) {
7
24
  return Object.fromEntries(Object.entries(cardParamMap).map(([key, value]) => [
8
25
  key,
@@ -55,9 +72,9 @@ export class DingtalkInteractiveCardClient {
55
72
  typeof entry === 'object' &&
56
73
  entry.success === false);
57
74
  if (failure) {
58
- throw new Error(`${input.templateId}: ${typeof failure.errorMsg === 'string' && failure.errorMsg.trim()
75
+ throw new DingtalkCardRequestError(`${input.templateId}: ${typeof failure.errorMsg === 'string' && failure.errorMsg.trim()
59
76
  ? failure.errorMsg.trim()
60
- : 'DingTalk card delivery failed'}`);
77
+ : 'DingTalk card delivery failed'}`, false);
61
78
  }
62
79
  }
63
80
  }
@@ -82,21 +99,28 @@ export class DingtalkInteractiveCardClient {
82
99
  });
83
100
  }
84
101
  async request(path, method, body, templateId) {
85
- const token = await this.options.getAccessToken();
86
- const response = await this.fetch(`${DINGTALK_API}${path}`, {
87
- method,
88
- headers: {
89
- 'Content-Type': 'application/json',
90
- 'x-acs-dingtalk-access-token': token,
91
- },
92
- body: JSON.stringify(body),
93
- signal: AbortSignal.timeout(CARD_FETCH_TIMEOUT_MS),
94
- });
95
- if (!response.ok) {
96
- const detail = (await response.text().catch(() => '')).slice(0, 300);
97
- throw new Error(`DingTalk Card OpenAPI ${method} ${path} failed${templateId ? ` for ${templateId}` : ''}: HTTP ${response.status}${detail ? ` ${detail}` : ''}`);
102
+ for (let attempt = 0;; attempt++) {
103
+ const token = await this.options.getAccessToken();
104
+ const response = await this.fetch(`${DINGTALK_API}${path}`, {
105
+ method,
106
+ headers: {
107
+ 'Content-Type': 'application/json',
108
+ 'x-acs-dingtalk-access-token': token,
109
+ },
110
+ body: JSON.stringify(body),
111
+ signal: AbortSignal.timeout(CARD_FETCH_TIMEOUT_MS),
112
+ });
113
+ if (response.status === 401 && attempt === 0) {
114
+ this.options.invalidateAccessToken(token);
115
+ await response.body?.cancel();
116
+ continue;
117
+ }
118
+ if (!response.ok) {
119
+ const detail = (await response.text().catch(() => '')).slice(0, 300);
120
+ throw new DingtalkCardRequestError(`DingTalk Card OpenAPI ${method} ${path} failed${templateId ? ` for ${templateId}` : ''}: HTTP ${response.status}${detail ? ` ${detail}` : ''}`, isRetryableStatus(response.status));
121
+ }
122
+ return response.json().catch(() => undefined);
98
123
  }
99
- return response.json().catch(() => undefined);
100
124
  }
101
125
  }
102
126
  //# sourceMappingURL=interactive-card-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-card-client.js","sourceRoot":"","sources":["../src/interactive-card-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive-card-client.js","sourceRoot":"","sources":["../src/interactive-card-client.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,11 @@
5
5
  * - Max message length ~3800 chars — split into chunks
6
6
  * - Code fences must be closed/reopened across chunk boundaries
7
7
  */
8
- export declare function splitChunks(text: string): string[];
8
+ export declare const DINGTALK_CHUNK_LIMIT = 3800;
9
+ export declare function escapeDingTalkMarkdown(value: string): string;
10
+ export declare function splitChunks(text: string, chunkLimit?: number): string[];
9
11
  /** Extract a short title from the first line of markdown for the webhook payload. */
10
12
  export declare function extractTitle(text: string): string;
11
13
  /** Split long Markdown messages without changing their formatting. */
12
- export declare function normalizeDingTalkMarkdown(text: string): string[];
14
+ export declare function normalizeDingTalkMarkdown(text: string, chunkLimit?: number): string[];
13
15
  //# sourceMappingURL=markdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAwGlD;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,sEAAsE;AACtE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D;AAgBD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,UAAU,SAAuB,GAChC,MAAM,EAAE,CAqHV;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,sEAAsE;AACtE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,UAAU,SAAuB,GAChC,MAAM,EAAE,CAEV"}
package/dist/markdown.js CHANGED
@@ -5,10 +5,25 @@
5
5
  * - Max message length ~3800 chars — split into chunks
6
6
  * - Code fences must be closed/reopened across chunk boundaries
7
7
  */
8
- const CHUNK_LIMIT = 3800;
8
+ export const DINGTALK_CHUNK_LIMIT = 3800;
9
+ export function escapeDingTalkMarkdown(value) {
10
+ return value.replace(/([\\`*_[\]{}()#+.!|>~:-])/gu, '\\$1');
11
+ }
9
12
  // --- Chunk splitting ---
10
- export function splitChunks(text) {
11
- if (!text || text.length <= CHUNK_LIMIT) {
13
+ function safeUtf16SliceEnd(value, end) {
14
+ if (end <= 0 || end >= value.length)
15
+ return end;
16
+ const previous = value.charCodeAt(end - 1);
17
+ const next = value.charCodeAt(end);
18
+ return previous >= 0xd800 &&
19
+ previous <= 0xdbff &&
20
+ next >= 0xdc00 &&
21
+ next <= 0xdfff
22
+ ? end - 1
23
+ : end;
24
+ }
25
+ export function splitChunks(text, chunkLimit = DINGTALK_CHUNK_LIMIT) {
26
+ if (!text || text.length <= chunkLimit) {
12
27
  return [text];
13
28
  }
14
29
  const chunks = [];
@@ -28,14 +43,18 @@ export function splitChunks(text) {
28
43
  let lineOpenedFenceInBuffer = false;
29
44
  while (remaining.length > 0 || prefixPending) {
30
45
  const prefix = prefixPending ? '\n' : '';
31
- const fitsAsFinalPiece = remaining.length <= CHUNK_LIMIT - buf.length - prefix.length;
46
+ const fitsAsFinalPiece = remaining.length <= chunkLimit - buf.length - prefix.length;
32
47
  const closeFenceOverhead = (inCode && !(closesCodeFence && fitsAsFinalPiece)) ||
33
48
  (!inCode && leavesCodeFenceOpen)
34
49
  ? '\n```'.length
35
50
  : 0;
36
- const available = CHUNK_LIMIT - closeFenceOverhead - buf.length - prefix.length;
51
+ const available = chunkLimit - closeFenceOverhead - buf.length - prefix.length;
37
52
  if (available <= 0) {
38
- flush(inCode || lineOpenedFenceInBuffer);
53
+ const keepCodeOpen = inCode || lineOpenedFenceInBuffer;
54
+ if (buf === (keepCodeOpen ? '```' : '')) {
55
+ throw new RangeError('chunk limit cannot contain one Unicode character');
56
+ }
57
+ flush(keepCodeOpen);
39
58
  continue;
40
59
  }
41
60
  let pieceLength = Math.min(available, remaining.length);
@@ -48,8 +67,13 @@ export function splitChunks(text) {
48
67
  }
49
68
  }
50
69
  }
70
+ pieceLength = safeUtf16SliceEnd(remaining, pieceLength);
51
71
  if (pieceLength === 0 && remaining.length > 0) {
52
- flush(inCode || lineOpenedFenceInBuffer);
72
+ const keepCodeOpen = inCode || lineOpenedFenceInBuffer;
73
+ if (!buf || (keepCodeOpen && buf === '```')) {
74
+ throw new RangeError('chunk limit cannot contain one Unicode character');
75
+ }
76
+ flush(keepCodeOpen);
53
77
  continue;
54
78
  }
55
79
  const piece = remaining.slice(0, pieceLength);
@@ -87,7 +111,7 @@ export function extractTitle(text) {
87
111
  return cleaned || 'Reply';
88
112
  }
89
113
  /** Split long Markdown messages without changing their formatting. */
90
- export function normalizeDingTalkMarkdown(text) {
91
- return splitChunks(text);
114
+ export function normalizeDingTalkMarkdown(text, chunkLimit = DINGTALK_CHUNK_LIMIT) {
115
+ return splitChunks(text, chunkLimit);
92
116
  }
93
117
  //# sourceMappingURL=markdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,0BAA0B;AAE1B,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,MAAM,KAAK,GAAG,CAAC,YAAY,GAAG,MAAM,EAAE,EAAE;QACtC,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,IAAI,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CACjB,IAAY,EACZ,cAAuB,EACvB,eAAwB,EACxB,mBAA4B,EAC5B,EAAE;QACF,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,aAAa,GAAG,cAAc,CAAC;QACnC,IAAI,uBAAuB,GAAG,KAAK,CAAC;QAEpC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,gBAAgB,GACpB,SAAS,CAAC,MAAM,IAAI,WAAW,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/D,MAAM,kBAAkB,GACtB,CAAC,MAAM,IAAI,CAAC,CAAC,eAAe,IAAI,gBAAgB,CAAC,CAAC;gBAClD,CAAC,CAAC,MAAM,IAAI,mBAAmB,CAAC;gBAC9B,CAAC,CAAC,OAAO,CAAC,MAAM;gBAChB,CAAC,CAAC,CAAC,CAAC;YACR,MAAM,SAAS,GACb,WAAW,GAAG,kBAAkB,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAEhE,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,KAAK,CAAC,MAAM,IAAI,uBAAuB,CAAC,CAAC;gBACzC,SAAS;YACX,CAAC;YAED,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;gBACnC,KACE,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,EAC7C,UAAU,GAAG,WAAW,EACxB,UAAU,EAAE,EACZ,CAAC;oBACD,IACE,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,KAAK,KAAK;wBACrD,WAAW,GAAG,UAAU,GAAG,CAAC,EAC5B,CAAC;wBACD,WAAW,GAAG,UAAU,CAAC;wBACzB,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,WAAW,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,KAAK,CAAC,MAAM,IAAI,uBAAuB,CAAC,CAAC;gBACzC,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,CAAC;YACpC,GAAG,IAAI,YAAY,CAAC;YACpB,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1C,aAAa,GAAG,KAAK,CAAC;YACtB,uBAAuB;gBACrB,CAAC,MAAM,IAAI,mBAAmB,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEjE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,MAAM,IAAI,uBAAuB,CAAC;gBACvD,KAAK,CAAC,YAAY,CAAC,CAAC;gBACpB,aAAa,GAAG,YAAY,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACrD,MAAM,gBAAgB,GAAG,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,UAAU,CACR,IAAI,EACJ,CAAC,GAAG,CAAC,EACL,MAAM,IAAI,gBAAgB,EAC1B,MAAM,KAAK,gBAAgB,CAC5B,CAAC;QAEF,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,GAAG,CAAC,MAAM,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,OAAO,OAAO,IAAI,OAAO,CAAC;AAC5B,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,11 @@ export interface FileProjection {
7
7
  excessMarkers: number;
8
8
  markerCount: number;
9
9
  }
10
+ export interface ValidatedFile {
11
+ data: Buffer;
12
+ fileName: string;
13
+ fileType: string;
14
+ }
10
15
  export declare class OutboundFileProjector {
11
16
  private candidate;
12
17
  private reserved;
@@ -23,11 +28,14 @@ export declare class OutboundFileProjector {
23
28
  private finishReservedLine;
24
29
  }
25
30
  /**
26
- * Redacts [FILE: ...] markers from one complete outbound text. Detection
27
- * deliberately scans the RAW text, unlike the image path's maskCode scan:
28
- * FILE performs no upload, so a FILE-shaped example inside a code fence is
29
- * over-redacted rather than risking a leaked path — security over fidelity.
31
+ * Redacts [FILE: ...] markers from one complete outbound text and returns
32
+ * accepted paths separately. Detection deliberately scans the RAW text,
33
+ * unlike the image path's maskCode scan, so a FILE-shaped example inside a
34
+ * code fence is over-redacted rather than risking a leaked path.
30
35
  */
31
36
  export declare function projectFileText(text: string): FileProjection;
32
37
  export declare function withFileUnavailableNotice(text: string): string;
38
+ export declare function safeFileName(filePath: string): string;
39
+ export declare function readValidatedFile(filePath: string, workspaceDir: string): ValidatedFile;
40
+ export declare function uploadDingTalkFile(file: ValidatedFile, accessToken: string): Promise<string>;
33
41
  //# sourceMappingURL=outbound-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outbound-file.d.ts","sourceRoot":"","sources":["../src/outbound-file.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IAExB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAqC7B,QAAQ,IAAI,MAAM;IAUlB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAUpC,OAAO,CAAC,kBAAkB;CAsB3B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAI5D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9D"}
1
+ {"version":3,"file":"outbound-file.d.ts","sourceRoot":"","sources":["../src/outbound-file.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IAExB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAqC7B,QAAQ,IAAI,MAAM;IAUlB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAUpC,OAAO,CAAC,kBAAkB;CAsB3B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAI5D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMrD;AAUD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,aAAa,CAqDf;AASD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAiEjB"}
@@ -1,5 +1,13 @@
1
+ import { closeSync, constants, fstatSync, openSync, readSync, realpathSync, statSync, } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { basename, extname, isAbsolute, relative, sep } from 'node:path';
4
+ import { DingTalkMediaUploadError } from './outbound-image.js';
1
5
  const FILE_OPENING = '[FILE:';
6
+ const MEDIA_UPLOAD_API = 'https://oapi.dingtalk.com/media/upload';
7
+ const MEDIA_UPLOAD_TIMEOUT_MS = 30_000;
2
8
  const MAX_FILE_PATH_CHARS = 4096;
9
+ const MAX_FILE_BYTES = 20 * 1024 * 1024;
10
+ const AUTH_ERROR_CODES = new Set([40014, 42001]);
3
11
  export const MAX_FILES_PER_RESPONSE = 5;
4
12
  export const FILE_UNAVAILABLE_NOTICE = '[File delivery unavailable]';
5
13
  export class OutboundFileProjector {
@@ -92,10 +100,10 @@ export class OutboundFileProjector {
92
100
  }
93
101
  }
94
102
  /**
95
- * Redacts [FILE: ...] markers from one complete outbound text. Detection
96
- * deliberately scans the RAW text, unlike the image path's maskCode scan:
97
- * FILE performs no upload, so a FILE-shaped example inside a code fence is
98
- * over-redacted rather than risking a leaked path — security over fidelity.
103
+ * Redacts [FILE: ...] markers from one complete outbound text and returns
104
+ * accepted paths separately. Detection deliberately scans the RAW text,
105
+ * unlike the image path's maskCode scan, so a FILE-shaped example inside a
106
+ * code fence is over-redacted rather than risking a leaked path.
99
107
  */
100
108
  export function projectFileText(text) {
101
109
  const projector = new OutboundFileProjector();
@@ -106,4 +114,114 @@ export function withFileUnavailableNotice(text) {
106
114
  const safe = text.trimEnd();
107
115
  return `${safe}${safe ? '\n' : ''}${FILE_UNAVAILABLE_NOTICE}`;
108
116
  }
117
+ export function safeFileName(filePath) {
118
+ return (basename(filePath)
119
+ .replace(/[\p{Cc}\p{Cf}[\]]+/gu, '_')
120
+ .slice(0, 200) || 'file');
121
+ }
122
+ function isInside(filePath, directory) {
123
+ const child = relative(directory, filePath);
124
+ return (child === '' ||
125
+ (!isAbsolute(child) && child !== '..' && !child.startsWith(`..${sep}`)));
126
+ }
127
+ export function readValidatedFile(filePath, workspaceDir) {
128
+ if (!isAbsolute(filePath))
129
+ throw new Error('File path must be absolute');
130
+ let realPath;
131
+ try {
132
+ realPath = realpathSync(filePath);
133
+ }
134
+ catch {
135
+ throw new Error('File not found');
136
+ }
137
+ const roots = [
138
+ workspaceDir,
139
+ tmpdir(),
140
+ ...(process.platform === 'win32' ? [] : ['/tmp']),
141
+ ].map((root) => realpathSync(root));
142
+ if (!roots.some((root) => isInside(realPath, root))) {
143
+ throw new Error('File path outside allowed directories');
144
+ }
145
+ if (!statSync(realPath).isFile())
146
+ throw new Error('Not a regular file');
147
+ const descriptor = openSync(realPath, constants.O_RDONLY | constants.O_NONBLOCK | (constants.O_NOFOLLOW ?? 0));
148
+ try {
149
+ const stats = fstatSync(descriptor);
150
+ if (!stats.isFile())
151
+ throw new Error('Not a regular file');
152
+ if (stats.size === 0)
153
+ throw new Error('File is empty');
154
+ if (stats.size > MAX_FILE_BYTES)
155
+ throw new Error('File is too large');
156
+ const data = Buffer.allocUnsafe(stats.size + 1);
157
+ let bytesRead = 0;
158
+ while (bytesRead < data.length) {
159
+ const count = readSync(descriptor, data, bytesRead, data.length - bytesRead, bytesRead);
160
+ if (count === 0)
161
+ break;
162
+ bytesRead += count;
163
+ }
164
+ if (bytesRead !== stats.size)
165
+ throw new Error('File changed while read');
166
+ const fileName = safeFileName(realPath);
167
+ return {
168
+ data: data.subarray(0, bytesRead),
169
+ fileName,
170
+ fileType: extname(fileName).slice(1).toLowerCase() || 'file',
171
+ };
172
+ }
173
+ finally {
174
+ closeSync(descriptor);
175
+ }
176
+ }
177
+ function sanitizeApiMessage(message, accessToken) {
178
+ const value = String(message ?? '');
179
+ return (accessToken ? value.replaceAll(accessToken, '[redacted]') : value)
180
+ .replace(/[\r\n\t]+/g, ' ')
181
+ .slice(0, 200);
182
+ }
183
+ export async function uploadDingTalkFile(file, accessToken) {
184
+ const form = new FormData();
185
+ form.append('media', new Blob([file.data], { type: 'application/octet-stream' }), file.fileName);
186
+ let response;
187
+ try {
188
+ const url = new URL(MEDIA_UPLOAD_API);
189
+ url.searchParams.set('access_token', accessToken);
190
+ url.searchParams.set('type', 'file');
191
+ response = await fetch(url, {
192
+ method: 'POST',
193
+ body: form,
194
+ signal: AbortSignal.timeout(MEDIA_UPLOAD_TIMEOUT_MS),
195
+ });
196
+ }
197
+ catch {
198
+ throw new DingTalkMediaUploadError('DingTalk file upload failed: network request failed', false);
199
+ }
200
+ let payload;
201
+ try {
202
+ const parsed = (await response.json());
203
+ payload =
204
+ parsed && typeof parsed === 'object' && !Array.isArray(parsed)
205
+ ? parsed
206
+ : {};
207
+ }
208
+ catch {
209
+ throw new DingTalkMediaUploadError(`DingTalk file upload failed: HTTP ${response.status} invalid JSON response`, response.status === 401);
210
+ }
211
+ const errcode = typeof payload['errcode'] === 'number' ? payload['errcode'] : undefined;
212
+ if (!response.ok || (errcode !== undefined && errcode !== 0)) {
213
+ const detail = sanitizeApiMessage(payload['errmsg'], accessToken);
214
+ throw new DingTalkMediaUploadError(`DingTalk file upload failed: HTTP ${response.status}${errcode === undefined ? '' : ` errcode=${errcode}`}${detail ? ` ${detail}` : ''}`, response.status === 401 ||
215
+ (errcode !== undefined && AUTH_ERROR_CODES.has(errcode)));
216
+ }
217
+ const mediaId = typeof payload['media_id'] === 'string'
218
+ ? payload['media_id']
219
+ : typeof payload['mediaId'] === 'string'
220
+ ? payload['mediaId']
221
+ : undefined;
222
+ if (!mediaId) {
223
+ throw new DingTalkMediaUploadError('DingTalk file upload failed: response did not include a MediaID', false);
224
+ }
225
+ return mediaId;
226
+ }
109
227
  //# sourceMappingURL=outbound-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outbound-file.js","sourceRoot":"","sources":["../src/outbound-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbound-file.js","sourceRoot":"","sources":["../src/outbound-file.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { DingtalkCardCallback, DingtalkCardCallbackResult } from './interac
4
4
  export interface QuestionCardControllerOptions {
5
5
  client: DingtalkInteractiveCardClient;
6
6
  timeoutMs: number;
7
- sendFallback(chatId: string, text: string): Promise<void>;
7
+ sendFallback(chatId: string, text: string, sourceLabel?: string): Promise<void>;
8
8
  reserveRunProjection?(runId: string): ((operation: () => Promise<void>) => Promise<void>) | undefined;
9
9
  onError?(operation: string, error: unknown): void;
10
10
  }
@@ -33,5 +33,6 @@ export declare class QuestionCardController {
33
33
  private scopeKey;
34
34
  private cardData;
35
35
  private fallbackText;
36
+ private withSourceLabel;
36
37
  }
37
38
  //# sourceMappingURL=question-card-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"question-card-controller.d.ts","sourceRoot":"","sources":["../src/question-card-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,8BAA8B,EAC9B,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AA2BrC,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,6BAA6B,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,oBAAoB,CAAC,CACnB,KAAK,EAAE,MAAM,GACZ,CAAC,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACnE,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACnD;AAED,qBAAa,sBAAsB;IAOrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,YAAY,CAAK;gBAEI,OAAO,EAAE,6BAA6B;IAE7D,OAAO,CACX,OAAO,EAAE,8BAA8B,EACvC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAC3C,OAAO,CAAC,2BAA2B,CAAC;IA2FvC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,GAAG,0BAA0B;IA2CjE,SAAS,CACP,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,WAAW,GAAG,SAAuB,GACnD,IAAI;YAiBO,OAAO;YAgCP,MAAM;YAWN,QAAQ;IAgCtB,OAAO,CAAC,yBAAyB;YAMnB,eAAe;IA0C7B,OAAO,CAAC,YAAY;IAwCpB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAyChB,OAAO,CAAC,YAAY;CAWrB"}
1
+ {"version":3,"file":"question-card-controller.d.ts","sourceRoot":"","sources":["../src/question-card-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,8BAA8B,EAC9B,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AA4BrC,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,6BAA6B,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,oBAAoB,CAAC,CACnB,KAAK,EAAE,MAAM,GACZ,CAAC,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACnE,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACnD;AAED,qBAAa,sBAAsB;IAOrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,YAAY,CAAK;gBAEI,OAAO,EAAE,6BAA6B;IAE7D,OAAO,CACX,OAAO,EAAE,8BAA8B,EACvC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAC3C,OAAO,CAAC,2BAA2B,CAAC;IA4FvC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,GAAG,0BAA0B;IA2CjE,SAAS,CACP,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,WAAW,GAAG,SAAuB,GACnD,IAAI;YAiBO,OAAO;YAgCP,MAAM;YAWN,QAAQ;IAgCtB,OAAO,CAAC,yBAAyB;YAMnB,eAAe;IAqD7B,OAAO,CAAC,YAAY;IAwCpB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAyChB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,eAAe;CAQxB"}
@@ -1,5 +1,6 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { QUESTION_CARD_TEMPLATE_ID, } from './interactive-card-client.js';
3
+ import { escapeDingTalkMarkdown } from './markdown.js';
3
4
  const OTHER_OPTION_VALUE = '__qwen_other__';
4
5
  export class QuestionCardController {
5
6
  options;
@@ -63,7 +64,7 @@ export class QuestionCardController {
63
64
  }
64
65
  await this.finalize(record, 'cancelled');
65
66
  try {
66
- await this.options.sendFallback(context.target.chatId, this.fallbackText(context));
67
+ await this.options.sendFallback(context.target.chatId, this.fallbackText(context), ...(context.sourceLabel ? [context.sourceLabel] : []));
67
68
  }
68
69
  catch (fallbackError) {
69
70
  this.options.onError?.('question fallback delivery', fallbackError);
@@ -214,22 +215,22 @@ export class QuestionCardController {
214
215
  const cardParamMap = {
215
216
  submitted: {
216
217
  card_status: 'submitted',
217
- question_desc: 'Submitted.',
218
+ question_desc: this.withSourceLabel(record.context, 'Submitted.'),
218
219
  form_btn_text: 'Submitted',
219
220
  },
220
221
  expired: {
221
222
  card_status: 'expired',
222
- question_desc: 'This question expired. Please retry.',
223
+ question_desc: this.withSourceLabel(record.context, 'This question expired. Please retry.'),
223
224
  form_btn_text: 'Expired',
224
225
  },
225
226
  resolved_outside_presenter: {
226
227
  card_status: 'expired',
227
- question_desc: 'Resolved outside this card.',
228
+ question_desc: this.withSourceLabel(record.context, 'Resolved outside this card.'),
228
229
  form_btn_text: 'Expired',
229
230
  },
230
231
  cancelled: {
231
232
  card_status: 'cancelled',
232
- question_desc: 'Cancelled.',
233
+ question_desc: this.withSourceLabel(record.context, 'Cancelled.'),
233
234
  form_btn_text: 'Cancelled',
234
235
  },
235
236
  };
@@ -239,7 +240,9 @@ export class QuestionCardController {
239
240
  cardParamMap: {
240
241
  ...cardParamMap[record.terminalState],
241
242
  ...(record.terminalDescription
242
- ? { question_desc: record.terminalDescription }
243
+ ? {
244
+ question_desc: this.withSourceLabel(record.context, record.terminalDescription),
245
+ }
243
246
  : {}),
244
247
  },
245
248
  });
@@ -306,7 +309,7 @@ export class QuestionCardController {
306
309
  return {
307
310
  question_id: context.requestId,
308
311
  question_title: first.header,
309
- question_desc: first.question,
312
+ question_desc: this.withSourceLabel(context, first.question),
310
313
  card_status: 'pending',
311
314
  form_btn_text: 'Submit',
312
315
  selected_text: '',
@@ -347,5 +350,11 @@ export class QuestionCardController {
347
350
  .join('\n');
348
351
  return `The interactive question could not be delivered, so this request was cancelled. Please retry.\n${questions}`;
349
352
  }
353
+ withSourceLabel(context, text) {
354
+ if (!context.sourceLabel)
355
+ return text;
356
+ const label = escapeDingTalkMarkdown(context.sourceLabel);
357
+ return `${label}\n\n${text}`;
358
+ }
350
359
  }
351
360
  //# sourceMappingURL=question-card-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"question-card-controller.js","sourceRoot":"","sources":["../src/question-card-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"question-card-controller.js","sourceRoot":"","sources":["../src/question-card-controller.ts"],"names":[],"mappings":"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"}