dialog-survey 1.13.1 → 1.13.3
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/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.13.
|
|
1
|
+
1.13.3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-message-utils.d.ts","sourceRoot":"","sources":["../../../src/services/stream-message-utils.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"stream-message-utils.d.ts","sourceRoot":"","sources":["../../../src/services/stream-message-utils.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuFD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,mBAAmB,GAAG,IAAI,CAuBrF;AAED,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,aAIhC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED,wBAAsB,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA4CzF"}
|
|
@@ -16,23 +16,34 @@ function readStringField(container, key) {
|
|
|
16
16
|
return typeof field === 'string' ? field : undefined;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Flatten DingTalk rich-text segments into plain text.
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
21
|
+
* A segment is either a plain string or an object, and the text lives under one
|
|
22
|
+
* of three keys depending on how the client encoded it: `text` for the common
|
|
23
|
+
* case, and a nested `richText`/`content` array for quoted/pasted blocks that
|
|
24
|
+
* DingTalk wraps one level deeper. Recursing covers both without a special case.
|
|
25
|
+
*
|
|
26
|
+
* Picture/voice/file segments carry none of those keys and contribute nothing —
|
|
27
|
+
* they are media descriptors, not the user's words.
|
|
25
28
|
*/
|
|
26
|
-
function
|
|
27
|
-
if (
|
|
29
|
+
function flattenRichText(value) {
|
|
30
|
+
if (typeof value === 'string')
|
|
31
|
+
return value;
|
|
32
|
+
if (Array.isArray(value))
|
|
33
|
+
return value.map(flattenRichText).join('');
|
|
34
|
+
if (!value || typeof value !== 'object')
|
|
28
35
|
return '';
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
const segment = value;
|
|
37
|
+
if (typeof segment.text === 'string')
|
|
38
|
+
return segment.text;
|
|
39
|
+
for (const key of ['richText', 'content']) {
|
|
40
|
+
const nested = segment[key];
|
|
41
|
+
if (Array.isArray(nested))
|
|
42
|
+
return flattenRichText(nested);
|
|
43
|
+
if (typeof nested === 'string')
|
|
44
|
+
return nested;
|
|
34
45
|
}
|
|
35
|
-
return
|
|
46
|
+
return '';
|
|
36
47
|
}
|
|
37
48
|
/**
|
|
38
49
|
* Extract the plain text of a DingTalk message body WITHOUT ever stringifying an
|
|
@@ -40,21 +51,27 @@ function extractRichText(segments) {
|
|
|
40
51
|
* non-empty string: it slipped past the empty-content guards downstream and was
|
|
41
52
|
* persisted as a real answer (issue #221), silently discarding the user's reply.
|
|
42
53
|
*
|
|
43
|
-
* Precedence follows the message type: plain text, then
|
|
44
|
-
*
|
|
54
|
+
* Precedence follows the message type: plain text, then the text segments of a
|
|
55
|
+
* rich-text body, then a raw string body, then markdown. Returns `''` for any
|
|
45
56
|
* shape that carries no text, so the caller treats it as "no usable content"
|
|
46
57
|
* instead of writing garbage.
|
|
47
58
|
*/
|
|
48
59
|
function extractMessageText(data) {
|
|
49
|
-
const text =
|
|
50
|
-
|
|
51
|
-
|
|
60
|
+
const text = data['text'];
|
|
61
|
+
const textContent = readField(text, 'content');
|
|
62
|
+
if (typeof textContent === 'string')
|
|
63
|
+
return textContent;
|
|
64
|
+
// Some clients put the richText segments under `text` rather than `content`;
|
|
65
|
+
// reading both is harmless and keeps a whitespace-only body from winning.
|
|
66
|
+
const textRich = flattenRichText(textContent).trim();
|
|
67
|
+
if (textRich)
|
|
68
|
+
return textRich;
|
|
52
69
|
const content = data['content'];
|
|
53
70
|
if (typeof content === 'string')
|
|
54
71
|
return content;
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
57
|
-
return
|
|
72
|
+
const contentRich = flattenRichText(content).trim();
|
|
73
|
+
if (contentRich)
|
|
74
|
+
return contentRich;
|
|
58
75
|
return readStringField(data['markdown'], 'text') ?? '';
|
|
59
76
|
}
|
|
60
77
|
export function parseStreamMessage(message) {
|
|
@@ -63,10 +80,13 @@ export function parseStreamMessage(message) {
|
|
|
63
80
|
// DingTalk may send non-text messages (rich text, images, voice, files).
|
|
64
81
|
// Extract text by message type; never fall back to String(object).
|
|
65
82
|
const content = extractMessageText(data);
|
|
83
|
+
// Narrow the identity fields for the same reason as `content`: a
|
|
84
|
+
// non-string here would reach the repository and the webhook allowlist as
|
|
85
|
+
// `[object Object]` rather than failing visibly.
|
|
66
86
|
return {
|
|
67
|
-
userId: data.senderStaffId
|
|
87
|
+
userId: typeof data.senderStaffId === 'string' ? data.senderStaffId : '',
|
|
68
88
|
content: content,
|
|
69
|
-
sessionWebhook: data.sessionWebhook
|
|
89
|
+
sessionWebhook: typeof data.sessionWebhook === 'string' ? data.sessionWebhook : '',
|
|
70
90
|
messageId: message.headers.messageId,
|
|
71
91
|
};
|
|
72
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-message-utils.js","sourceRoot":"","sources":["../../../src/services/stream-message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"stream-message-utils.js","sourceRoot":"","sources":["../../../src/services/stream-message-utils.ts"],"names":[],"mappings":"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"}
|