@zhin.js/command 1.0.10 → 1.0.11
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/lib/definition.js +14 -6
- package/package.json +1 -1
- package/src/definition.ts +14 -4
package/lib/definition.js
CHANGED
|
@@ -179,10 +179,15 @@ function resolveSender(input, metadata) {
|
|
|
179
179
|
if (isCommandSender(structured)) {
|
|
180
180
|
return freezeSender(structured);
|
|
181
181
|
}
|
|
182
|
-
const
|
|
182
|
+
const $sender = input.$sender;
|
|
183
|
+
const id = input.sender?.id
|
|
184
|
+
|| (typeof $sender?.id === 'string' ? $sender.id : undefined)
|
|
185
|
+
|| firstString(metadata?.user_id, metadata?.userId);
|
|
183
186
|
if (!id)
|
|
184
187
|
return undefined;
|
|
185
|
-
const name = input.sender?.name
|
|
188
|
+
const name = input.sender?.name
|
|
189
|
+
|| (typeof $sender?.name === 'string' ? $sender.name : undefined)
|
|
190
|
+
|| firstString(metadata?.nickname, metadata?.senderName, metadata?.name);
|
|
186
191
|
const role = resolveRoles(input, metadata);
|
|
187
192
|
return Object.freeze({
|
|
188
193
|
id,
|
|
@@ -202,16 +207,19 @@ function resolveRoles(input, metadata) {
|
|
|
202
207
|
if (trimmed && !roles.includes(trimmed))
|
|
203
208
|
roles.push(trimmed);
|
|
204
209
|
};
|
|
210
|
+
// IM Message 的 $sender 携带 enrich 快照(isMaster/isTrusted)和平台群角色(role)
|
|
211
|
+
const $sender = input.$sender;
|
|
212
|
+
if ($sender?.isMaster === true || metadata?.isMaster === true)
|
|
213
|
+
push('master');
|
|
214
|
+
else if ($sender?.isTrusted === true || metadata?.isTrusted === true)
|
|
215
|
+
push('trusted');
|
|
216
|
+
push($sender?.role);
|
|
205
217
|
if (Array.isArray(metadata?.roles)) {
|
|
206
218
|
for (const item of metadata.roles)
|
|
207
219
|
push(item);
|
|
208
220
|
}
|
|
209
221
|
push(metadata?.senderRole);
|
|
210
222
|
push(metadata?.role);
|
|
211
|
-
if (metadata?.isMaster === true)
|
|
212
|
-
push('master');
|
|
213
|
-
if (metadata?.isTrusted === true)
|
|
214
|
-
push('trusted');
|
|
215
223
|
if (roles.length === 0)
|
|
216
224
|
roles.push('user');
|
|
217
225
|
return Object.freeze(roles);
|
package/package.json
CHANGED
package/src/definition.ts
CHANGED
|
@@ -458,10 +458,15 @@ function resolveSender(
|
|
|
458
458
|
return freezeSender(structured);
|
|
459
459
|
}
|
|
460
460
|
|
|
461
|
-
const
|
|
461
|
+
const $sender = (input as { readonly $sender?: Readonly<Record<string, unknown>> }).$sender;
|
|
462
|
+
const id = input.sender?.id
|
|
463
|
+
|| (typeof $sender?.id === 'string' ? $sender.id : undefined)
|
|
464
|
+
|| firstString(metadata?.user_id, metadata?.userId);
|
|
462
465
|
if (!id) return undefined;
|
|
463
466
|
|
|
464
|
-
const name = input.sender?.name
|
|
467
|
+
const name = input.sender?.name
|
|
468
|
+
|| (typeof $sender?.name === 'string' ? $sender.name : undefined)
|
|
469
|
+
|| firstString(metadata?.nickname, metadata?.senderName, metadata?.name);
|
|
465
470
|
const role = resolveRoles(input, metadata);
|
|
466
471
|
|
|
467
472
|
return Object.freeze({
|
|
@@ -485,13 +490,18 @@ function resolveRoles(
|
|
|
485
490
|
if (trimmed && !roles.includes(trimmed)) roles.push(trimmed);
|
|
486
491
|
};
|
|
487
492
|
|
|
493
|
+
// IM Message 的 $sender 携带 enrich 快照(isMaster/isTrusted)和平台群角色(role)
|
|
494
|
+
const $sender = (input as { readonly $sender?: Readonly<Record<string, unknown>> }).$sender;
|
|
495
|
+
|
|
496
|
+
if ($sender?.isMaster === true || metadata?.isMaster === true) push('master');
|
|
497
|
+
else if ($sender?.isTrusted === true || metadata?.isTrusted === true) push('trusted');
|
|
498
|
+
|
|
499
|
+
push($sender?.role);
|
|
488
500
|
if (Array.isArray(metadata?.roles)) {
|
|
489
501
|
for (const item of metadata.roles) push(item);
|
|
490
502
|
}
|
|
491
503
|
push(metadata?.senderRole);
|
|
492
504
|
push(metadata?.role);
|
|
493
|
-
if (metadata?.isMaster === true) push('master');
|
|
494
|
-
if (metadata?.isTrusted === true) push('trusted');
|
|
495
505
|
if (roles.length === 0) roles.push('user');
|
|
496
506
|
return Object.freeze(roles);
|
|
497
507
|
}
|