@xmanrui/dsh-im 4.34.0 → 4.34.1
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/client.js +18 -4
- package/lib/index.js +287 -287
- package/package.json +1 -1
- package/plugin-src/client/access-policy-settings.js +18 -3
- package/plugin-src/client/i18n.js +5 -0
- package/plugin-src/host/channels/feishu/production.mjs +11 -0
- package/plugin-src/host/channels/shared/access-policy-production.mjs +1 -0
- package/plugin-src/host/channels/shared/workspace-rpc.mjs +1 -0
- package/src/channels/discord/config-store.mjs +21 -1
- package/src/channels/discord/discord-api.mjs +32 -0
- package/src/channels/discord/discord-controller.mjs +22 -1
- package/src/channels/feishu/bridge.mjs +11 -1
- package/src/channels/shared/bot-workspace-store.mjs +4 -0
- package/src/channels/shared/i18n-en/feishu.mjs +2 -0
package/lib/client.js
CHANGED
|
@@ -595,7 +595,7 @@ var React38 = __toESM(require("react"), 1);
|
|
|
595
595
|
// package.json
|
|
596
596
|
var package_default = {
|
|
597
597
|
name: "@xmanrui/dsh-im",
|
|
598
|
-
version: "4.34.
|
|
598
|
+
version: "4.34.1",
|
|
599
599
|
icon: "./assets/logo-plugin-message-link-gradient.webp",
|
|
600
600
|
description: "\u628A\u5FAE\u4FE1\u3001\u98DE\u4E66\u3001\u4F01\u5FAE\u3001\u9489\u9489\u3001QQ\u3001Telegram\u3001WhatsApp\u3001Slack\u3001Discord\u3001Matrix\u63A5\u5165DSH\u3002 Connect Telegram, WhatsApp, Slack, Discord, Matrix, WeChat, Feishu, WeCom, DingTalk, and QQ to DSH.",
|
|
601
601
|
keywords: [
|
|
@@ -1213,6 +1213,11 @@ var EN = Object.freeze({
|
|
|
1213
1213
|
"\u5C1A\u672A\u6DFB\u52A0\u7528\u6237": "No users added",
|
|
1214
1214
|
"\u5F53\u524D\u6E20\u9053\u4E0D\u652F\u6301\u7FA4\u804A": "Group chat is not supported by this channel",
|
|
1215
1215
|
"\u539F\u6240\u6709\u8005\u6216\u626B\u7801\u63A5\u5165\u8005\u59CB\u7EC8\u53EF\u4EE5\u8BBF\u95EE\u5E76\u6267\u884C\u547D\u4EE4\uFF1B\u4EE5\u4E0B\u8BBE\u7F6E\u4EC5\u7EA6\u675F\u5176\u4ED6\u7528\u6237\u3002": "The original owner or QR-code operator can always access the bot and run commands; the settings below apply only to other users.",
|
|
1216
|
+
"\u5DF2\u7531\u63A5\u5165\u6D41\u7A0B\u786E\u8BA4\u7684\u6240\u6709\u8005\u53EF\u4EE5\u8BBF\u95EE\u5E76\u6267\u884C\u547D\u4EE4\uFF0C\u4E0D\u53D7\u672C\u9875\u9650\u5236\u3002\u672A\u8BC6\u522B\u5230\u6240\u6709\u8005\u8EAB\u4EFD\u65F6\uFF0C\u6309\u672C\u9875\u8BBF\u95EE\u8BBE\u7F6E\u6267\u884C\u3002": "Owners confirmed during connection setup can access the bot and run commands regardless of these settings. When no owner has been identified, these access settings apply.",
|
|
1217
|
+
"\u767D\u540D\u5355\u8BF7\u586B\u5199\u4F7F\u7528\u8005\u7684 Open ID\uFF0C\u4E0D\u662F\u673A\u5668\u4EBA\u7684 Open ID\u3002\u4EC5\u4FDD\u5B58\u901A\u914D\u7B26\u7684\u63A5\u5165\u914D\u7F6E\u4E0D\u5305\u542B\u6240\u6709\u8005\u8EAB\u4EFD\u3002": "Enter the user\u2019s Open ID in the allowlist, not the bot\u2019s Open ID. A connection configured with only a wildcard has no identified owner.",
|
|
1218
|
+
"\u626B\u7801\u83B7\u5F97\u7684\u662F\u79C1\u804A\u8EAB\u4EFD\uFF0C\u7FA4\u804A\u53EA\u6709\u5339\u914D\u5DF2\u786E\u8BA4\u7684\u6240\u6709\u8005\u8EAB\u4EFD\u65F6\u624D\u8C41\u514D\uFF1B\u5176\u4ED6\u6210\u5458\u6309\u7FA4\u804A\u767D\u540D\u5355\u8BBE\u7F6E\u6267\u884C\u3002": "QR setup identifies the owner for direct messages. In groups, only a matching confirmed owner identity is exempt; other members follow the group allowlist settings.",
|
|
1219
|
+
"\u586B\u5199\u4F7F\u7528\u8005\u7684 Open ID\uFF08ou_xxx\uFF09\uFF0C\u4E0D\u662F\u673A\u5668\u4EBA ID": "Enter the user\u2019s Open ID (ou_xxx), not the bot ID",
|
|
1220
|
+
"\u8FD9\u91CC\u9700\u8981\u586B\u5199\u7528\u6237\u7684 Open ID\uFF0C\u4E0D\u80FD\u586B\u5199\u673A\u5668\u4EBA\u81EA\u5DF1\u7684 Open ID\u3002": "Enter a user Open ID here, not the bot\u2019s own Open ID.",
|
|
1216
1221
|
"\u6B64\u533A\u57DF\u65E0\u9700\u914D\u7F6E\uFF0C\u4FDD\u5B58\u79C1\u804A\u8BBE\u7F6E\u65F6\u4F1A\u4FDD\u7559\u73B0\u6709\u7FA4\u804A\u7B56\u7565\u3002": "No setup is needed here. Saving direct-message settings keeps the existing group policy.",
|
|
1217
1222
|
"\u8BBF\u95EE\u8BBE\u7F6E\u5DF2\u4FDD\u5B58\u3002": "Access settings saved.",
|
|
1218
1223
|
"\u8BBF\u95EE\u8BBE\u7F6E\u6682\u4E0D\u53EF\u7528\u3002": "Access settings are currently unavailable.",
|
|
@@ -16178,6 +16183,7 @@ var React33 = __toESM(require("react"), 1);
|
|
|
16178
16183
|
// plugin-src/client/access-policy-settings.js
|
|
16179
16184
|
var React28 = __toESM(require("react"), 1);
|
|
16180
16185
|
var ACCESS_POLICY_ENDPOINT = "bot.access-policy.set";
|
|
16186
|
+
var CONFIRMED_OWNER_CHANNELS = /* @__PURE__ */ new Set(["weixin", "feishu", "qq", "whatsapp", "discord"]);
|
|
16181
16187
|
var ACCESS_CHANNEL_DEFINITIONS = Object.freeze({
|
|
16182
16188
|
weixin: Object.freeze({
|
|
16183
16189
|
directUserLabel: "\u5FAE\u4FE1\u7528\u6237 ID",
|
|
@@ -16186,9 +16192,9 @@ var ACCESS_CHANNEL_DEFINITIONS = Object.freeze({
|
|
|
16186
16192
|
}),
|
|
16187
16193
|
feishu: Object.freeze({
|
|
16188
16194
|
directUserLabel: "\u98DE\u4E66 Open ID",
|
|
16189
|
-
directPlaceholder: "
|
|
16195
|
+
directPlaceholder: "\u586B\u5199\u4F7F\u7528\u8005\u7684 Open ID\uFF08ou_xxx\uFF09\uFF0C\u4E0D\u662F\u673A\u5668\u4EBA ID",
|
|
16190
16196
|
groupUserLabel: "\u7FA4\u6210\u5458 Open ID",
|
|
16191
|
-
groupPlaceholder: "
|
|
16197
|
+
groupPlaceholder: "\u586B\u5199\u4F7F\u7528\u8005\u7684 Open ID\uFF08ou_xxx\uFF09\uFF0C\u4E0D\u662F\u673A\u5668\u4EBA ID"
|
|
16192
16198
|
}),
|
|
16193
16199
|
dingtalk: Object.freeze({
|
|
16194
16200
|
directUserLabel: "\u9489\u9489\u7528\u6237 ID",
|
|
@@ -16287,6 +16293,8 @@ function ScenePolicyEditor({
|
|
|
16287
16293
|
placeholder,
|
|
16288
16294
|
disabled = false,
|
|
16289
16295
|
unsupported = false,
|
|
16296
|
+
ownerHelp,
|
|
16297
|
+
identityHelp,
|
|
16290
16298
|
onChange
|
|
16291
16299
|
}) {
|
|
16292
16300
|
const ownerHelpId = React28.useId();
|
|
@@ -16332,7 +16340,7 @@ function ScenePolicyEditor({
|
|
|
16332
16340
|
id: ownerHelpId,
|
|
16333
16341
|
className: "dim-channelTooltip dim-accessHelpTooltip",
|
|
16334
16342
|
role: "tooltip"
|
|
16335
|
-
}, "
|
|
16343
|
+
}, ownerHelp, identityHelp ? h2("br") : null, identityHelp)
|
|
16336
16344
|
)
|
|
16337
16345
|
)
|
|
16338
16346
|
),
|
|
@@ -16481,6 +16489,8 @@ function ScenePolicyEditor({
|
|
|
16481
16489
|
}
|
|
16482
16490
|
function AccessPolicySettingsPage({ channel: channel7, account, rpcCall, onSaved }) {
|
|
16483
16491
|
const definition = ACCESS_CHANNEL_DEFINITIONS[channel7];
|
|
16492
|
+
const ownerHelp = CONFIRMED_OWNER_CHANNELS.has(channel7) ? "\u5DF2\u7531\u63A5\u5165\u6D41\u7A0B\u786E\u8BA4\u7684\u6240\u6709\u8005\u53EF\u4EE5\u8BBF\u95EE\u5E76\u6267\u884C\u547D\u4EE4\uFF0C\u4E0D\u53D7\u672C\u9875\u9650\u5236\u3002\u672A\u8BC6\u522B\u5230\u6240\u6709\u8005\u8EAB\u4EFD\u65F6\uFF0C\u6309\u672C\u9875\u8BBF\u95EE\u8BBE\u7F6E\u6267\u884C\u3002" : "\u539F\u6240\u6709\u8005\u6216\u626B\u7801\u63A5\u5165\u8005\u59CB\u7EC8\u53EF\u4EE5\u8BBF\u95EE\u5E76\u6267\u884C\u547D\u4EE4\uFF1B\u4EE5\u4E0B\u8BBE\u7F6E\u4EC5\u7EA6\u675F\u5176\u4ED6\u7528\u6237\u3002";
|
|
16493
|
+
const identityHelp = channel7 === "feishu" ? "\u767D\u540D\u5355\u8BF7\u586B\u5199\u4F7F\u7528\u8005\u7684 Open ID\uFF0C\u4E0D\u662F\u673A\u5668\u4EBA\u7684 Open ID\u3002\u4EC5\u4FDD\u5B58\u901A\u914D\u7B26\u7684\u63A5\u5165\u914D\u7F6E\u4E0D\u5305\u542B\u6240\u6709\u8005\u8EAB\u4EFD\u3002" : null;
|
|
16484
16494
|
const initialPolicy = normalizeAccessPolicy(account?.accessPolicy);
|
|
16485
16495
|
const initialKey = JSON.stringify(initialPolicy);
|
|
16486
16496
|
const [draft, setDraft] = React28.useState(() => clonePolicy(
|
|
@@ -16544,6 +16554,8 @@ function AccessPolicySettingsPage({ channel: channel7, account, rpcCall, onSaved
|
|
|
16544
16554
|
policy: draft.direct,
|
|
16545
16555
|
userLabel: definition.directUserLabel,
|
|
16546
16556
|
placeholder: definition.directPlaceholder,
|
|
16557
|
+
ownerHelp,
|
|
16558
|
+
identityHelp,
|
|
16547
16559
|
disabled: saving,
|
|
16548
16560
|
onChange: (direct) => {
|
|
16549
16561
|
setDraft((current) => ({ ...current, direct }));
|
|
@@ -16556,6 +16568,8 @@ function AccessPolicySettingsPage({ channel: channel7, account, rpcCall, onSaved
|
|
|
16556
16568
|
policy: draft.group,
|
|
16557
16569
|
userLabel: definition.groupUserLabel ?? definition.directUserLabel,
|
|
16558
16570
|
placeholder: definition.groupPlaceholder ?? definition.directPlaceholder,
|
|
16571
|
+
ownerHelp,
|
|
16572
|
+
identityHelp: channel7 === "qq" ? "\u626B\u7801\u83B7\u5F97\u7684\u662F\u79C1\u804A\u8EAB\u4EFD\uFF0C\u7FA4\u804A\u53EA\u6709\u5339\u914D\u5DF2\u786E\u8BA4\u7684\u6240\u6709\u8005\u8EAB\u4EFD\u65F6\u624D\u8C41\u514D\uFF1B\u5176\u4ED6\u6210\u5458\u6309\u7FA4\u804A\u767D\u540D\u5355\u8BBE\u7F6E\u6267\u884C\u3002" : identityHelp,
|
|
16559
16573
|
disabled: saving || definition.groupSupported === false,
|
|
16560
16574
|
unsupported: definition.groupSupported === false,
|
|
16561
16575
|
onChange: (group) => {
|