botmux 2.88.0 → 2.89.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.
- package/dist/bot-registry.d.ts +2 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +4 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/dashboard-endpoint.d.ts.map +1 -1
- package/dist/cli/dashboard-endpoint.js +9 -3
- package/dist/cli/dashboard-endpoint.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +9 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-command/groups.d.ts +20 -0
- package/dist/core/dashboard-command/groups.d.ts.map +1 -0
- package/dist/core/dashboard-command/groups.js +52 -0
- package/dist/core/dashboard-command/groups.js.map +1 -0
- package/dist/core/dashboard-command/index.d.ts +30 -0
- package/dist/core/dashboard-command/index.d.ts.map +1 -0
- package/dist/core/dashboard-command/index.js +81 -0
- package/dist/core/dashboard-command/index.js.map +1 -0
- package/dist/core/dashboard-command/overview.d.ts +29 -0
- package/dist/core/dashboard-command/overview.d.ts.map +1 -0
- package/dist/core/dashboard-command/overview.js +61 -0
- package/dist/core/dashboard-command/overview.js.map +1 -0
- package/dist/core/dashboard-command/owner-gate.d.ts +41 -0
- package/dist/core/dashboard-command/owner-gate.d.ts.map +1 -0
- package/dist/core/dashboard-command/owner-gate.js +40 -0
- package/dist/core/dashboard-command/owner-gate.js.map +1 -0
- package/dist/core/dashboard-command/schedules.d.ts +20 -0
- package/dist/core/dashboard-command/schedules.d.ts.map +1 -0
- package/dist/core/dashboard-command/schedules.js +47 -0
- package/dist/core/dashboard-command/schedules.js.map +1 -0
- package/dist/core/dashboard-command/sessions.d.ts +22 -0
- package/dist/core/dashboard-command/sessions.d.ts.map +1 -0
- package/dist/core/dashboard-command/sessions.js +43 -0
- package/dist/core/dashboard-command/sessions.js.map +1 -0
- package/dist/core/dashboard-command/settings.d.ts +21 -0
- package/dist/core/dashboard-command/settings.d.ts.map +1 -0
- package/dist/core/dashboard-command/settings.js +55 -0
- package/dist/core/dashboard-command/settings.js.map +1 -0
- package/dist/core/dashboard-command/stub.d.ts +16 -0
- package/dist/core/dashboard-command/stub.d.ts.map +1 -0
- package/dist/core/dashboard-command/stub.js +28 -0
- package/dist/core/dashboard-command/stub.js.map +1 -0
- package/dist/core/dashboard-command/workflows.d.ts +20 -0
- package/dist/core/dashboard-command/workflows.d.ts.map +1 -0
- package/dist/core/dashboard-command/workflows.js +45 -0
- package/dist/core/dashboard-command/workflows.js.map +1 -0
- package/dist/core/passthrough-commands.d.ts.map +1 -1
- package/dist/core/passthrough-commands.js +1 -1
- package/dist/core/passthrough-commands.js.map +1 -1
- package/dist/core/session-create.d.ts +0 -1
- package/dist/core/session-create.d.ts.map +1 -1
- package/dist/core/session-create.js +0 -3
- package/dist/core/session-create.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +3 -2
- package/dist/core/session-manager.js.map +1 -1
- package/dist/daemon-internal-client-wrapper.d.ts +41 -0
- package/dist/daemon-internal-client-wrapper.d.ts.map +1 -0
- package/dist/daemon-internal-client-wrapper.js +65 -0
- package/dist/daemon-internal-client-wrapper.js.map +1 -0
- package/dist/dashboard/aggregator.d.ts +12 -0
- package/dist/dashboard/aggregator.d.ts.map +1 -1
- package/dist/dashboard/aggregator.js +16 -0
- package/dist/dashboard/aggregator.js.map +1 -1
- package/dist/dashboard/auth.d.ts +7 -0
- package/dist/dashboard/auth.d.ts.map +1 -1
- package/dist/dashboard/auth.js +21 -0
- package/dist/dashboard/auth.js.map +1 -1
- package/dist/dashboard/card-model-types.d.ts +50 -0
- package/dist/dashboard/card-model-types.d.ts.map +1 -0
- package/dist/dashboard/card-model-types.js +9 -0
- package/dist/dashboard/card-model-types.js.map +1 -0
- package/dist/dashboard/daemon-internal-api.d.ts +90 -0
- package/dist/dashboard/daemon-internal-api.d.ts.map +1 -0
- package/dist/dashboard/daemon-internal-api.js +534 -0
- package/dist/dashboard/daemon-internal-api.js.map +1 -0
- package/dist/dashboard/daemon-internal-auth.d.ts +124 -0
- package/dist/dashboard/daemon-internal-auth.d.ts.map +1 -0
- package/dist/dashboard/daemon-internal-auth.js +188 -0
- package/dist/dashboard/daemon-internal-auth.js.map +1 -0
- package/dist/dashboard/daemon-internal-client.d.ts +67 -0
- package/dist/dashboard/daemon-internal-client.d.ts.map +1 -0
- package/dist/dashboard/daemon-internal-client.js +157 -0
- package/dist/dashboard/daemon-internal-client.js.map +1 -0
- package/dist/dashboard/dashboard-admins.d.ts +8 -0
- package/dist/dashboard/dashboard-admins.d.ts.map +1 -0
- package/dist/dashboard/dashboard-admins.js +15 -0
- package/dist/dashboard/dashboard-admins.js.map +1 -0
- package/dist/dashboard/federation-spoke-api.d.ts +3 -0
- package/dist/dashboard/federation-spoke-api.d.ts.map +1 -1
- package/dist/dashboard/federation-spoke-api.js +11 -8
- package/dist/dashboard/federation-spoke-api.js.map +1 -1
- package/dist/dashboard/groups-action-helpers.d.ts +69 -0
- package/dist/dashboard/groups-action-helpers.d.ts.map +1 -0
- package/dist/dashboard/groups-action-helpers.js +141 -0
- package/dist/dashboard/groups-action-helpers.js.map +1 -0
- package/dist/dashboard/groups-card-model.d.ts +120 -0
- package/dist/dashboard/groups-card-model.d.ts.map +1 -0
- package/dist/dashboard/groups-card-model.js +175 -0
- package/dist/dashboard/groups-card-model.js.map +1 -0
- package/dist/dashboard/schedule-card-model.d.ts +172 -0
- package/dist/dashboard/schedule-card-model.d.ts.map +1 -0
- package/dist/dashboard/schedule-card-model.js +290 -0
- package/dist/dashboard/schedule-card-model.js.map +1 -0
- package/dist/dashboard/session-card-model.d.ts +83 -0
- package/dist/dashboard/session-card-model.d.ts.map +1 -0
- package/dist/dashboard/session-card-model.js +196 -0
- package/dist/dashboard/session-card-model.js.map +1 -0
- package/dist/dashboard/settings-card-model.d.ts +73 -0
- package/dist/dashboard/settings-card-model.d.ts.map +1 -0
- package/dist/dashboard/settings-card-model.js +94 -0
- package/dist/dashboard/settings-card-model.js.map +1 -0
- package/dist/dashboard/settings-owner-resolver.d.ts +32 -0
- package/dist/dashboard/settings-owner-resolver.d.ts.map +1 -0
- package/dist/dashboard/settings-owner-resolver.js +43 -0
- package/dist/dashboard/settings-owner-resolver.js.map +1 -0
- package/dist/dashboard/settings-write-applier.d.ts +84 -0
- package/dist/dashboard/settings-write-applier.d.ts.map +1 -0
- package/dist/dashboard/settings-write-applier.js +119 -0
- package/dist/dashboard/settings-write-applier.js.map +1 -0
- package/dist/dashboard/workflow-api.d.ts.map +1 -1
- package/dist/dashboard/workflow-api.js +38 -119
- package/dist/dashboard/workflow-api.js.map +1 -1
- package/dist/dashboard/workflow-card-model.d.ts +127 -0
- package/dist/dashboard/workflow-card-model.d.ts.map +1 -0
- package/dist/dashboard/workflow-card-model.js +186 -0
- package/dist/dashboard/workflow-card-model.js.map +1 -0
- package/dist/dashboard/workflows-action-helpers.d.ts +105 -0
- package/dist/dashboard/workflows-action-helpers.d.ts.map +1 -0
- package/dist/dashboard/workflows-action-helpers.js +196 -0
- package/dist/dashboard/workflows-action-helpers.js.map +1 -0
- package/dist/dashboard.js +196 -271
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +266 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +266 -0
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +2 -0
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +2 -1
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts +54 -2
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +127 -1
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +22 -0
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/groups-card.d.ts +90 -0
- package/dist/im/lark/groups-card.d.ts.map +1 -0
- package/dist/im/lark/groups-card.js +832 -0
- package/dist/im/lark/groups-card.js.map +1 -0
- package/dist/im/lark/overview-card.d.ts +101 -0
- package/dist/im/lark/overview-card.d.ts.map +1 -0
- package/dist/im/lark/overview-card.js +475 -0
- package/dist/im/lark/overview-card.js.map +1 -0
- package/dist/im/lark/schedules-card.d.ts +96 -0
- package/dist/im/lark/schedules-card.d.ts.map +1 -0
- package/dist/im/lark/schedules-card.js +892 -0
- package/dist/im/lark/schedules-card.js.map +1 -0
- package/dist/im/lark/sessions-card.d.ts +117 -0
- package/dist/im/lark/sessions-card.d.ts.map +1 -0
- package/dist/im/lark/sessions-card.js +870 -0
- package/dist/im/lark/sessions-card.js.map +1 -0
- package/dist/im/lark/settings-card.d.ts +125 -0
- package/dist/im/lark/settings-card.d.ts.map +1 -0
- package/dist/im/lark/settings-card.js +433 -0
- package/dist/im/lark/settings-card.js.map +1 -0
- package/dist/im/lark/workflows-card.d.ts +102 -0
- package/dist/im/lark/workflows-card.d.ts.map +1 -0
- package/dist/im/lark/workflows-card.js +737 -0
- package/dist/im/lark/workflows-card.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions-card.js","sourceRoot":"","sources":["../../../src/im/lark/sessions-card.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings dashboard card.
|
|
3
|
+
*
|
|
4
|
+
* Consumes the settings DTO and emits a Feishu interactive card. The handler
|
|
5
|
+
* chain is:
|
|
6
|
+
*
|
|
7
|
+
* 1. invoker lock: `action.value.invoker_open_id === operator.open_id`.
|
|
8
|
+
* 2. per-bot admin gate: `operator.open_id` MUST be one of this bot's
|
|
9
|
+
* resolved `allowedUsers`, matching `/botconfig`. Each callback is
|
|
10
|
+
* scoped to the bot that received it; an admin of bot A cannot use
|
|
11
|
+
* bot B's `/dashboard *`.
|
|
12
|
+
* 3. noop short-circuit: `dash_settings_noop` (current-value button in the
|
|
13
|
+
* segmented control) returns a toast WITHOUT calling the Route B client.
|
|
14
|
+
* Fail-safe for clients that don't suppress `disabled` callbacks.
|
|
15
|
+
* 4. Sync handler:
|
|
16
|
+
* - await the Route B PUT/GET (resolves the admin's union_id via
|
|
17
|
+
* `resolveUserUnionId` first, since the server-side write API
|
|
18
|
+
* still requires `ownerUnionId` in the body),
|
|
19
|
+
* - return ONLY `{ card }` (no toast) on the success path so the
|
|
20
|
+
* event-dispatcher passes the rebuilt card body back to Lark in
|
|
21
|
+
* the SAME callback response. Toast + card together makes the
|
|
22
|
+
* Lark client render the toast and the card replacement in two
|
|
23
|
+
* separate passes, flashing the OLD card state during the gap;
|
|
24
|
+
* card-only avoids that. Errors/permission denials/noop still
|
|
25
|
+
* return a plain toast (they have no card to render).
|
|
26
|
+
*
|
|
27
|
+
* Write actions are never retried; toggling a setting twice is a real-world
|
|
28
|
+
* effect.
|
|
29
|
+
*
|
|
30
|
+
* Sender identity (`unionId`) NEVER lands on `action.value`. The only field
|
|
31
|
+
* the callback echoes from the original render is `invoker_open_id`, which
|
|
32
|
+
* is the invoking admin's open_id (not the sender's union_id).
|
|
33
|
+
*/
|
|
34
|
+
import { type SettingsCardDTO } from '../../dashboard/settings-card-model.js';
|
|
35
|
+
import type { DaemonClient } from '../../dashboard/daemon-internal-client.js';
|
|
36
|
+
import { type Locale } from '../../i18n/index.js';
|
|
37
|
+
import type { CardActionData } from './card-handler.js';
|
|
38
|
+
export declare const SETTINGS_ACTION_TOGGLE: "dash_settings_toggle";
|
|
39
|
+
export declare const SETTINGS_ACTION_SET_TIME: "dash_settings_set_time";
|
|
40
|
+
export declare const SETTINGS_ACTION_REFRESH: "dash_settings_refresh";
|
|
41
|
+
/** Current-value segmented-control buttons send noop as a fail-safe. */
|
|
42
|
+
export declare const SETTINGS_ACTION_NOOP: "dash_settings_noop";
|
|
43
|
+
/** Builder opts intentionally exclude sender union identity. */
|
|
44
|
+
export interface BuildSettingsCardOpts {
|
|
45
|
+
invokerOpenId: string;
|
|
46
|
+
locale: Locale;
|
|
47
|
+
canWrite: boolean;
|
|
48
|
+
/** Overview drilldown nav state. `'overview'` → footer renders
|
|
49
|
+
* "🔙 返回总览" AND every action.value carries `origin=overview` so
|
|
50
|
+
* toggle/set_time/refresh rebuilds keep the return affordance.
|
|
51
|
+
* Settings is single-layer (no pages) → no `pageSize`. */
|
|
52
|
+
origin?: 'overview';
|
|
53
|
+
}
|
|
54
|
+
/** Build a Feishu interactive card JSON string from the settings DTO. */
|
|
55
|
+
export declare function buildSettingsCard(dto: SettingsCardDTO, opts: BuildSettingsCardOpts): string;
|
|
56
|
+
/** ─── Handler ─────────────────────────────────────────────────────────── */
|
|
57
|
+
export interface SettingsCardHandlerDeps {
|
|
58
|
+
/** Legacy owner test seam; prefer `getDashboardAdminOpenIds` for new tests. */
|
|
59
|
+
getOwnerOpenId?: (larkAppId: string) => string | undefined;
|
|
60
|
+
getDashboardAdminOpenIds?: (larkAppId: string) => ReadonlyArray<string> | undefined;
|
|
61
|
+
/** Override the union_id resolver. Production omits; tests skip Lark contact API. */
|
|
62
|
+
resolveUserUnionId?: (larkAppId: string, openId: string) => Promise<{
|
|
63
|
+
unionId?: string;
|
|
64
|
+
}>;
|
|
65
|
+
/** Factory returning a Route B client for the given larkAppId. */
|
|
66
|
+
createClient: (larkAppId: string) => DaemonClient;
|
|
67
|
+
/** Override locale resolution; production uses the caller-supplied locale. */
|
|
68
|
+
locale?: Locale;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Lark card-callback result envelope. event-dispatcher pass-through expects
|
|
72
|
+
* either `{ toast }`, `{ card }`, or both — see `event-dispatcher.ts:390-395`.
|
|
73
|
+
*
|
|
74
|
+
* The handler awaits GET/PUT inline. On the success path it returns ONLY
|
|
75
|
+
* `{ card }` (no toast). Why card-only:
|
|
76
|
+
* - Lark's client renders toast and card replacement as two separate passes;
|
|
77
|
+
* users briefly see the old card state between them.
|
|
78
|
+
* - Card-only collapses that to a single pass — the card body itself
|
|
79
|
+
* (`✓ 已开启` / `✓ 已关闭`) is the feedback signal; users learn the
|
|
80
|
+
* write succeeded from the new state, not from a toast.
|
|
81
|
+
* Error / permission denial / noop still return `{ toast }` (no card to
|
|
82
|
+
* render anyway). Round-trip Route B PUT + card rebuild fits in ~30-80ms;
|
|
83
|
+
* well inside the `event-dispatcher` 2.5s handler timeout
|
|
84
|
+
* (`event-dispatcher.ts:365`).
|
|
85
|
+
*/
|
|
86
|
+
export interface SettingsCardHandlerResult {
|
|
87
|
+
/** Optional — success path now returns ONLY a `card` to avoid the
|
|
88
|
+
* toast + card two-pass render that flashes the OLD state. Errors,
|
|
89
|
+
* permission denials, and noop still return a toast. */
|
|
90
|
+
toast?: {
|
|
91
|
+
type: 'info' | 'success' | 'error';
|
|
92
|
+
content: string;
|
|
93
|
+
};
|
|
94
|
+
card?: {
|
|
95
|
+
type: 'raw';
|
|
96
|
+
data: Record<string, unknown>;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export type PatchBuildResult = {
|
|
100
|
+
ok: true;
|
|
101
|
+
value: unknown;
|
|
102
|
+
} | {
|
|
103
|
+
ok: false;
|
|
104
|
+
error: 'invalid_field' | 'invalid_value' | 'invalid_time' | 'invalid_action';
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Build the dashboard settings patch from an action callback. Pure — caller
|
|
108
|
+
* decides whether to PUT.
|
|
109
|
+
*
|
|
110
|
+
* Whitelisting: `next_value` MUST be the literal string
|
|
111
|
+
* `'true'` or `'false'`. Anything else (`'yes'`, `'TRUE'`, undefined, an
|
|
112
|
+
* object) returns `invalid_value` so an upstream callback drift cannot
|
|
113
|
+
* silently flip a toggle.
|
|
114
|
+
*
|
|
115
|
+
* Time validation: HH:MM regex, no silent fallback to 04:00.
|
|
116
|
+
*/
|
|
117
|
+
export declare function buildPatchFromAction(action: string, value: Record<string, string>, formValue: Record<string, unknown>): PatchBuildResult;
|
|
118
|
+
/**
|
|
119
|
+
* Dispatch a `dash_settings_*` action callback. Awaits the Route B
|
|
120
|
+
* GET/PUT inline. Success path returns `{ card }` (card-only — see the
|
|
121
|
+
* module docstring for why we drop the toast). Errors / permission
|
|
122
|
+
* denials / noop return a plain `{ toast }`.
|
|
123
|
+
*/
|
|
124
|
+
export declare function handleSettingsCardAction(data: CardActionData, larkAppId: string, deps: SettingsCardHandlerDeps): Promise<SettingsCardHandlerResult>;
|
|
125
|
+
//# sourceMappingURL=settings-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-card.d.ts","sourceRoot":"","sources":["../../../src/im/lark/settings-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,KAAK,MAAM,EAAK,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,sBAAsB,EAAG,sBAA+B,CAAC;AACtE,eAAO,MAAM,wBAAwB,EAAG,wBAAiC,CAAC;AAC1E,eAAO,MAAM,uBAAuB,EAAG,uBAAgC,CAAC;AACxE,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,EAAG,oBAA6B,CAAC;AAclE,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB;;;+DAG2D;IAC3D,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAwF3F;AAqJD,8EAA8E;AAE9E,MAAM,WAAW,uBAAuB;IACtC,+EAA+E;IAC/E,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpF,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1F,kEAAkE;IAClE,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,CAAC;IAClD,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,yBAAyB;IACxC;;6DAEyD;IACzD,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACvD;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,eAAe,GAAG,eAAe,GAAG,cAAc,GAAG,gBAAgB,CAAA;CAAE,CAAC;AAEhG;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,gBAAgB,CA2BlB;AA2CD;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CA2FpC"}
|
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings dashboard card.
|
|
3
|
+
*
|
|
4
|
+
* Consumes the settings DTO and emits a Feishu interactive card. The handler
|
|
5
|
+
* chain is:
|
|
6
|
+
*
|
|
7
|
+
* 1. invoker lock: `action.value.invoker_open_id === operator.open_id`.
|
|
8
|
+
* 2. per-bot admin gate: `operator.open_id` MUST be one of this bot's
|
|
9
|
+
* resolved `allowedUsers`, matching `/botconfig`. Each callback is
|
|
10
|
+
* scoped to the bot that received it; an admin of bot A cannot use
|
|
11
|
+
* bot B's `/dashboard *`.
|
|
12
|
+
* 3. noop short-circuit: `dash_settings_noop` (current-value button in the
|
|
13
|
+
* segmented control) returns a toast WITHOUT calling the Route B client.
|
|
14
|
+
* Fail-safe for clients that don't suppress `disabled` callbacks.
|
|
15
|
+
* 4. Sync handler:
|
|
16
|
+
* - await the Route B PUT/GET (resolves the admin's union_id via
|
|
17
|
+
* `resolveUserUnionId` first, since the server-side write API
|
|
18
|
+
* still requires `ownerUnionId` in the body),
|
|
19
|
+
* - return ONLY `{ card }` (no toast) on the success path so the
|
|
20
|
+
* event-dispatcher passes the rebuilt card body back to Lark in
|
|
21
|
+
* the SAME callback response. Toast + card together makes the
|
|
22
|
+
* Lark client render the toast and the card replacement in two
|
|
23
|
+
* separate passes, flashing the OLD card state during the gap;
|
|
24
|
+
* card-only avoids that. Errors/permission denials/noop still
|
|
25
|
+
* return a plain toast (they have no card to render).
|
|
26
|
+
*
|
|
27
|
+
* Write actions are never retried; toggling a setting twice is a real-world
|
|
28
|
+
* effect.
|
|
29
|
+
*
|
|
30
|
+
* Sender identity (`unionId`) NEVER lands on `action.value`. The only field
|
|
31
|
+
* the callback echoes from the original render is `invoker_open_id`, which
|
|
32
|
+
* is the invoking admin's open_id (not the sender's union_id).
|
|
33
|
+
*/
|
|
34
|
+
import { isDashboardAdmin } from '../../dashboard/dashboard-admins.js';
|
|
35
|
+
import { composeSections } from '../../dashboard/settings-card-model.js';
|
|
36
|
+
import { t } from '../../i18n/index.js';
|
|
37
|
+
import { resolveUserUnionId as defaultResolveUserUnionId } from './client.js';
|
|
38
|
+
export const SETTINGS_ACTION_TOGGLE = 'dash_settings_toggle';
|
|
39
|
+
export const SETTINGS_ACTION_SET_TIME = 'dash_settings_set_time';
|
|
40
|
+
export const SETTINGS_ACTION_REFRESH = 'dash_settings_refresh';
|
|
41
|
+
/** Current-value segmented-control buttons send noop as a fail-safe. */
|
|
42
|
+
export const SETTINGS_ACTION_NOOP = 'dash_settings_noop';
|
|
43
|
+
/** Action emitted by "🔙 返回总览" on overview-origin settings cards. Same
|
|
44
|
+
* string as overview-card's OVERVIEW_ACTION_REFRESH (kept in sync; we don't
|
|
45
|
+
* import to avoid a circular dep). */
|
|
46
|
+
const BACK_TO_OVERVIEW_ACTION = 'dash_overview_refresh';
|
|
47
|
+
const TIME_REGEX = /^([01]\d|2[0-3]):[0-5]\d$/;
|
|
48
|
+
const TOGGLE_FIELDS = new Set([
|
|
49
|
+
'publicReadOnly',
|
|
50
|
+
'openTerminalInFeishu',
|
|
51
|
+
'autoUpdate',
|
|
52
|
+
'autoRestart',
|
|
53
|
+
]);
|
|
54
|
+
/** Build a Feishu interactive card JSON string from the settings DTO. */
|
|
55
|
+
export function buildSettingsCard(dto, opts) {
|
|
56
|
+
const elements = [];
|
|
57
|
+
// Nav state — threaded into every action.value so the rebuild path keeps
|
|
58
|
+
// 「🔙 返回总览」 affordance across toggle/set_time/refresh round-trips.
|
|
59
|
+
// Empty values omitted → standalone cards stay byte-identical.
|
|
60
|
+
const navFields = {};
|
|
61
|
+
if (opts.origin === 'overview')
|
|
62
|
+
navFields.origin = 'overview';
|
|
63
|
+
// Header summary was dropped per user feedback: segmented controls already
|
|
64
|
+
// make each toggle's state self-evident; a top-level summary becomes a second
|
|
65
|
+
// explanation system that drifts as configuration grows. Section-internal
|
|
66
|
+
// warnings (localDev, autoUpdate dependency) stay where the user reads them.
|
|
67
|
+
if (dto.readOnlyHintKey) {
|
|
68
|
+
elements.push({
|
|
69
|
+
tag: 'div',
|
|
70
|
+
text: { tag: 'lark_md', content: `⚠️ ${t(dto.readOnlyHintKey, undefined, opts.locale)}` },
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
for (const section of dto.sections) {
|
|
74
|
+
elements.push({ tag: 'hr' });
|
|
75
|
+
elements.push({
|
|
76
|
+
tag: 'div',
|
|
77
|
+
text: { tag: 'lark_md', content: `**${t(section.titleKey, undefined, opts.locale)}**` },
|
|
78
|
+
});
|
|
79
|
+
for (const toggle of section.toggles) {
|
|
80
|
+
elements.push(...buildSegmentedRow(toggle, opts, navFields));
|
|
81
|
+
}
|
|
82
|
+
if (section.hintKey) {
|
|
83
|
+
elements.push({
|
|
84
|
+
tag: 'note',
|
|
85
|
+
elements: [
|
|
86
|
+
{ tag: 'lark_md', content: `ℹ️ ${t(section.hintKey, undefined, opts.locale)}` },
|
|
87
|
+
],
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
elements.push({ tag: 'hr' });
|
|
92
|
+
// Refresh button — read-only, GET-only path. When the card was opened via
|
|
93
|
+
// overview drilldown, append "🔙 返回总览" beside it; standalone settings
|
|
94
|
+
// command omits the back button (no parent card to return to).
|
|
95
|
+
const footerActions = [
|
|
96
|
+
{
|
|
97
|
+
tag: 'button',
|
|
98
|
+
text: { tag: 'plain_text', content: t('card.dashboard.settings.refresh', undefined, opts.locale) },
|
|
99
|
+
type: 'default',
|
|
100
|
+
value: {
|
|
101
|
+
action: SETTINGS_ACTION_REFRESH,
|
|
102
|
+
invoker_open_id: opts.invokerOpenId,
|
|
103
|
+
...navFields,
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
];
|
|
107
|
+
if (opts.origin === 'overview') {
|
|
108
|
+
footerActions.push({
|
|
109
|
+
tag: 'button',
|
|
110
|
+
text: { tag: 'plain_text', content: t('card.dashboard.overview.back_button', undefined, opts.locale) },
|
|
111
|
+
type: 'default',
|
|
112
|
+
value: {
|
|
113
|
+
action: BACK_TO_OVERVIEW_ACTION,
|
|
114
|
+
invoker_open_id: opts.invokerOpenId,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
elements.push({ tag: 'action', actions: footerActions });
|
|
119
|
+
// Footer security note: the card is admin-private and refreshable.
|
|
120
|
+
elements.push({
|
|
121
|
+
tag: 'note',
|
|
122
|
+
elements: [
|
|
123
|
+
{ tag: 'lark_md', content: t('card.dashboard.settings.footer.security', undefined, opts.locale) },
|
|
124
|
+
],
|
|
125
|
+
});
|
|
126
|
+
return JSON.stringify({
|
|
127
|
+
config: { wide_screen_mode: true },
|
|
128
|
+
header: {
|
|
129
|
+
title: { tag: 'plain_text', content: t('card.dashboard.settings.title', undefined, opts.locale) },
|
|
130
|
+
template: 'blue',
|
|
131
|
+
},
|
|
132
|
+
elements,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Build a segmented control row for one toggle:
|
|
137
|
+
* - Current value button: `type: primary` + `disabled: true` + `✓ 已开启/已关闭`
|
|
138
|
+
* + carries `dash_settings_noop` action (belt-and-suspenders short-circuit).
|
|
139
|
+
* - Target value button: `type: default` + clickable + `dash_settings_toggle` action.
|
|
140
|
+
* - When the whole toggle is disabled (state.enabled=false): both buttons
|
|
141
|
+
* carry NO action, current still primary, target still default for clear
|
|
142
|
+
* visual; per-toggle `state.reasonKey` is surfaced as a note.
|
|
143
|
+
* - autoUpdate also renders a read-only "更新时间:HH:MM" line, AND when
|
|
144
|
+
* writable a form to update the time (carries the existing set_time
|
|
145
|
+
* action). The display line is present whether the toggle is disabled
|
|
146
|
+
* or not, so users always see the scheduled time.
|
|
147
|
+
*/
|
|
148
|
+
function buildSegmentedRow(toggle, opts, navFields) {
|
|
149
|
+
const labelLine = {
|
|
150
|
+
tag: 'div',
|
|
151
|
+
text: {
|
|
152
|
+
tag: 'lark_md',
|
|
153
|
+
content: `${toggle.enabled ? '🟢' : '⚪'} **${t(toggle.labelKey, undefined, opts.locale)}**` +
|
|
154
|
+
`\n<font color="grey">${t(toggle.hintKey, undefined, opts.locale)}</font>`,
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
const enabled = toggle.enabled;
|
|
158
|
+
const writable = toggle.state.enabled;
|
|
159
|
+
const onText = t(enabled ? 'card.dashboard.settings.segment.on_current' : 'card.dashboard.settings.segment.on', undefined, opts.locale);
|
|
160
|
+
const offText = t(!enabled ? 'card.dashboard.settings.segment.off_current' : 'card.dashboard.settings.segment.off', undefined, opts.locale);
|
|
161
|
+
// ON button — primary+current when ON, default+target when OFF
|
|
162
|
+
const onBtn = {
|
|
163
|
+
tag: 'button',
|
|
164
|
+
text: { tag: 'plain_text', content: onText },
|
|
165
|
+
type: enabled ? 'primary' : 'default',
|
|
166
|
+
};
|
|
167
|
+
if (enabled || !writable) {
|
|
168
|
+
// Current value (always primary) — `disabled` lets the client suppress the
|
|
169
|
+
// callback, and the noop action is the fallback if it doesn't.
|
|
170
|
+
onBtn.disabled = true;
|
|
171
|
+
if (writable) {
|
|
172
|
+
onBtn.value = { action: SETTINGS_ACTION_NOOP, invoker_open_id: opts.invokerOpenId, field: toggle.key, ...navFields };
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
onBtn.value = {
|
|
177
|
+
action: SETTINGS_ACTION_TOGGLE,
|
|
178
|
+
invoker_open_id: opts.invokerOpenId,
|
|
179
|
+
field: toggle.key,
|
|
180
|
+
next_value: 'true',
|
|
181
|
+
...navFields,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
// OFF button — primary+current when OFF, default+target when ON
|
|
185
|
+
const offBtn = {
|
|
186
|
+
tag: 'button',
|
|
187
|
+
text: { tag: 'plain_text', content: offText },
|
|
188
|
+
type: !enabled ? 'primary' : 'default',
|
|
189
|
+
};
|
|
190
|
+
if (!enabled || !writable) {
|
|
191
|
+
offBtn.disabled = true;
|
|
192
|
+
if (writable) {
|
|
193
|
+
offBtn.value = { action: SETTINGS_ACTION_NOOP, invoker_open_id: opts.invokerOpenId, field: toggle.key, ...navFields };
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
offBtn.value = {
|
|
198
|
+
action: SETTINGS_ACTION_TOGGLE,
|
|
199
|
+
invoker_open_id: opts.invokerOpenId,
|
|
200
|
+
field: toggle.key,
|
|
201
|
+
next_value: 'false',
|
|
202
|
+
...navFields,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
const row = [
|
|
206
|
+
labelLine,
|
|
207
|
+
{ tag: 'action', actions: [onBtn, offBtn] },
|
|
208
|
+
];
|
|
209
|
+
// Surface only this toggle's precise disabled reason; do not fall back to a
|
|
210
|
+
// generic key that would hide the actionable dependency.
|
|
211
|
+
if (!writable && toggle.state.reasonKey) {
|
|
212
|
+
row.push({
|
|
213
|
+
tag: 'note',
|
|
214
|
+
elements: [{ tag: 'lark_md', content: t(toggle.state.reasonKey, undefined, opts.locale) }],
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
// autoUpdate always shows the schedule time (read-only when toggle blocked,
|
|
218
|
+
// editable form when writable).
|
|
219
|
+
if (toggle.time) {
|
|
220
|
+
row.push({
|
|
221
|
+
tag: 'div',
|
|
222
|
+
text: {
|
|
223
|
+
tag: 'lark_md',
|
|
224
|
+
content: `<font color="grey">${t('card.dashboard.settings.maintenance.time_display', { time: toggle.time.value }, opts.locale)}</font>`,
|
|
225
|
+
},
|
|
226
|
+
});
|
|
227
|
+
if (writable) {
|
|
228
|
+
row.push({
|
|
229
|
+
tag: 'form',
|
|
230
|
+
name: `settings_time_${toggle.key}`,
|
|
231
|
+
elements: [
|
|
232
|
+
{
|
|
233
|
+
tag: 'input',
|
|
234
|
+
name: 'time',
|
|
235
|
+
placeholder: { tag: 'plain_text', content: 'HH:MM' },
|
|
236
|
+
default_value: toggle.time.value,
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
tag: 'action',
|
|
240
|
+
actions: [
|
|
241
|
+
{
|
|
242
|
+
tag: 'button',
|
|
243
|
+
text: { tag: 'plain_text', content: t('card.dashboard.settings.save_time', undefined, opts.locale) },
|
|
244
|
+
type: 'primary',
|
|
245
|
+
form_action_type: 'submit',
|
|
246
|
+
value: {
|
|
247
|
+
action: SETTINGS_ACTION_SET_TIME,
|
|
248
|
+
invoker_open_id: opts.invokerOpenId,
|
|
249
|
+
field: toggle.key,
|
|
250
|
+
...navFields,
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
],
|
|
254
|
+
},
|
|
255
|
+
],
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return row;
|
|
260
|
+
}
|
|
261
|
+
async function resolveVerifiedOperatorUnionId(data, larkAppId, operatorOpenId, deps) {
|
|
262
|
+
const verified = data.operator?.union_id;
|
|
263
|
+
if (typeof verified === 'string') {
|
|
264
|
+
return verified.startsWith('on_') ? verified : undefined;
|
|
265
|
+
}
|
|
266
|
+
const resolveUnion = deps.resolveUserUnionId ?? defaultResolveUserUnionId;
|
|
267
|
+
try {
|
|
268
|
+
const r = await resolveUnion(larkAppId, operatorOpenId);
|
|
269
|
+
return typeof r.unionId === 'string' && r.unionId.startsWith('on_') ? r.unionId : undefined;
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
return undefined;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Build the dashboard settings patch from an action callback. Pure — caller
|
|
277
|
+
* decides whether to PUT.
|
|
278
|
+
*
|
|
279
|
+
* Whitelisting: `next_value` MUST be the literal string
|
|
280
|
+
* `'true'` or `'false'`. Anything else (`'yes'`, `'TRUE'`, undefined, an
|
|
281
|
+
* object) returns `invalid_value` so an upstream callback drift cannot
|
|
282
|
+
* silently flip a toggle.
|
|
283
|
+
*
|
|
284
|
+
* Time validation: HH:MM regex, no silent fallback to 04:00.
|
|
285
|
+
*/
|
|
286
|
+
export function buildPatchFromAction(action, value, formValue) {
|
|
287
|
+
switch (action) {
|
|
288
|
+
case SETTINGS_ACTION_TOGGLE: {
|
|
289
|
+
const field = value.field;
|
|
290
|
+
if (typeof field !== 'string' || !TOGGLE_FIELDS.has(field)) {
|
|
291
|
+
return { ok: false, error: 'invalid_field' };
|
|
292
|
+
}
|
|
293
|
+
const raw = value.next_value;
|
|
294
|
+
if (raw !== 'true' && raw !== 'false') {
|
|
295
|
+
return { ok: false, error: 'invalid_value' };
|
|
296
|
+
}
|
|
297
|
+
const next = raw === 'true';
|
|
298
|
+
if (field === 'publicReadOnly' || field === 'openTerminalInFeishu') {
|
|
299
|
+
return { ok: true, value: { [field]: next } };
|
|
300
|
+
}
|
|
301
|
+
return { ok: true, value: { maintenance: { [field]: { enabled: next } } } };
|
|
302
|
+
}
|
|
303
|
+
case SETTINGS_ACTION_SET_TIME: {
|
|
304
|
+
const time = formValue.time;
|
|
305
|
+
if (typeof time !== 'string' || !TIME_REGEX.test(time)) {
|
|
306
|
+
return { ok: false, error: 'invalid_time' };
|
|
307
|
+
}
|
|
308
|
+
return { ok: true, value: { maintenance: { autoUpdate: { time } } } };
|
|
309
|
+
}
|
|
310
|
+
default:
|
|
311
|
+
return { ok: false, error: 'invalid_action' };
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
function ackToast(textKey, locale) {
|
|
315
|
+
return { toast: { type: 'info', content: t(textKey, undefined, locale) } };
|
|
316
|
+
}
|
|
317
|
+
function errorToast(textKey, params, locale) {
|
|
318
|
+
return { toast: { type: 'error', content: t(textKey, params, locale) } };
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Build a `{ card }` envelope from a Route B settings response.
|
|
322
|
+
*
|
|
323
|
+
* Returning toast + card together makes Lark render spinner removal and card
|
|
324
|
+
* replacement as separate passes, causing a stale-frame flash. Return only
|
|
325
|
+
* the card; the new card state is the success signal.
|
|
326
|
+
*
|
|
327
|
+
* If the payload carries no settings (malformed response), fall back to a
|
|
328
|
+
* generic success toast so the user gets *some* feedback. Error paths still
|
|
329
|
+
* use error toasts — those don't have a card to render anyway.
|
|
330
|
+
*/
|
|
331
|
+
function successResult(payload, invokerOpenId, locale, fallbackToastKey, origin) {
|
|
332
|
+
const settings = payload?.body?.settings ?? payload?.settings;
|
|
333
|
+
if (!settings || typeof settings !== 'object') {
|
|
334
|
+
return { toast: { type: 'success', content: t(fallbackToastKey, undefined, locale) } };
|
|
335
|
+
}
|
|
336
|
+
const dto = composeSections(settings, { canWrite: true });
|
|
337
|
+
const cardJson = buildSettingsCard(dto, { invokerOpenId, locale, canWrite: true, origin });
|
|
338
|
+
// No `toast` on the success path — the card body itself ("✓ 已开启" /
|
|
339
|
+
// "✓ 已关闭") is the feedback. Returning toast + card together triggers
|
|
340
|
+
// two separate render passes on the Lark client and flashes the OLD card
|
|
341
|
+
// state during the gap.
|
|
342
|
+
return {
|
|
343
|
+
card: { type: 'raw', data: JSON.parse(cardJson) },
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Dispatch a `dash_settings_*` action callback. Awaits the Route B
|
|
348
|
+
* GET/PUT inline. Success path returns `{ card }` (card-only — see the
|
|
349
|
+
* module docstring for why we drop the toast). Errors / permission
|
|
350
|
+
* denials / noop return a plain `{ toast }`.
|
|
351
|
+
*/
|
|
352
|
+
export async function handleSettingsCardAction(data, larkAppId, deps) {
|
|
353
|
+
const locale = deps.locale ?? 'zh';
|
|
354
|
+
const value = data.action?.value ?? {};
|
|
355
|
+
const formValue = data.action?.form_value ?? {};
|
|
356
|
+
const operatorOpenId = data.operator?.open_id;
|
|
357
|
+
const action = value.action;
|
|
358
|
+
// ─── 1) Invoker lock — fail-closed ──────────────────────────────────
|
|
359
|
+
// Settings card is new — there is no legacy callback shape to keep
|
|
360
|
+
// compatible. Reject any callback whose envelope is missing either side
|
|
361
|
+
// of the invoker assertion, then reject when they disagree.
|
|
362
|
+
const invokerOpenId = value.invoker_open_id;
|
|
363
|
+
if (typeof invokerOpenId !== 'string' || !invokerOpenId) {
|
|
364
|
+
return ackToast('card.dashboard.settings.not_invoker', locale);
|
|
365
|
+
}
|
|
366
|
+
if (typeof operatorOpenId !== 'string' || !operatorOpenId) {
|
|
367
|
+
return ackToast('card.dashboard.settings.not_invoker', locale);
|
|
368
|
+
}
|
|
369
|
+
if (invokerOpenId !== operatorOpenId) {
|
|
370
|
+
return ackToast('card.dashboard.settings.not_invoker', locale);
|
|
371
|
+
}
|
|
372
|
+
// ─── 2) Per-bot admin gate ───────────────────────────────────────────
|
|
373
|
+
// Match `/botconfig`: any resolved allowedUsers entry can act. The
|
|
374
|
+
// invoker lock above still pins this specific card to the admin who
|
|
375
|
+
// received it, and `action.value.*` identity fields are ignored.
|
|
376
|
+
if (!isDashboardAdmin(larkAppId, operatorOpenId, deps)) {
|
|
377
|
+
return ackToast('card.dashboard.settings.owner_only', locale);
|
|
378
|
+
}
|
|
379
|
+
// ─── Nav state (overview drilldown) ─────────────────────────────────
|
|
380
|
+
// Threaded by buildSettingsCard onto every action.value; we parse here
|
|
381
|
+
// so refresh / toggle / set_time rebuilds keep the「🔙 返回总览」 button.
|
|
382
|
+
const navOrigin = value.origin === 'overview' ? 'overview' : undefined;
|
|
383
|
+
// ─── 3) Noop short-circuit ───────────────────────────────────────────
|
|
384
|
+
// The current-value button in the segmented control is rendered with
|
|
385
|
+
// `disabled: true` but ALSO carries `dash_settings_noop` as a fail-safe:
|
|
386
|
+
// if any Lark client doesn't suppress disabled callbacks, we just toast
|
|
387
|
+
// and skip the network entirely. This is the only path that returns a
|
|
388
|
+
// success-typed toast without any side effect.
|
|
389
|
+
if (action === SETTINGS_ACTION_NOOP) {
|
|
390
|
+
return ackToast('card.dashboard.settings.toggle.disabled', locale);
|
|
391
|
+
}
|
|
392
|
+
// ─── 4a) Refresh — read-only path (NO PUT) ───────────────────────────
|
|
393
|
+
// Inline await + return rebuilt card in the SAME response (card-only,
|
|
394
|
+
// see successResult docstring for why we don't return a toast here).
|
|
395
|
+
if (action === SETTINGS_ACTION_REFRESH) {
|
|
396
|
+
try {
|
|
397
|
+
const client = deps.createClient(larkAppId);
|
|
398
|
+
const snap = await client.request({ method: 'GET', path: '/__daemon/settings-snapshot' });
|
|
399
|
+
return successResult(snap, operatorOpenId, locale, 'card.dashboard.settings.refreshed', navOrigin);
|
|
400
|
+
}
|
|
401
|
+
catch (e) {
|
|
402
|
+
return errorToast('card.dashboard.settings.snapshot_failed', { reason: e.message }, locale);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
// ─── 4b) Write path — toggle / set_time ─────────────────────────────
|
|
406
|
+
const patch = buildPatchFromAction(action ?? '', value, formValue);
|
|
407
|
+
if (!patch.ok) {
|
|
408
|
+
return ackToast(`card.dashboard.settings.${patch.error}`, locale);
|
|
409
|
+
}
|
|
410
|
+
// Route B still expects `ownerUnionId` for global settings authorization.
|
|
411
|
+
// Prefer Lark's verified callback field; only fall back to contact lookup
|
|
412
|
+
// when Lark omitted it. Never read identity from action.value.
|
|
413
|
+
const ownerUnionId = await resolveVerifiedOperatorUnionId(data, larkAppId, operatorOpenId, deps);
|
|
414
|
+
if (!ownerUnionId) {
|
|
415
|
+
return ackToast('card.dashboard.settings.owner_only', locale);
|
|
416
|
+
}
|
|
417
|
+
try {
|
|
418
|
+
const client = deps.createClient(larkAppId);
|
|
419
|
+
const r = await client.request({
|
|
420
|
+
method: 'PUT',
|
|
421
|
+
path: '/__daemon/settings-write',
|
|
422
|
+
body: { patch: patch.value, ownerUnionId },
|
|
423
|
+
});
|
|
424
|
+
if (r?.status >= 400) {
|
|
425
|
+
return errorToast('card.dashboard.settings.save_failed', { reason: String(r?.body?.error ?? `HTTP ${r?.status}`) }, locale);
|
|
426
|
+
}
|
|
427
|
+
return successResult(r, operatorOpenId, locale, 'card.dashboard.settings.saved', navOrigin);
|
|
428
|
+
}
|
|
429
|
+
catch (e) {
|
|
430
|
+
return errorToast('card.dashboard.settings.save_failed', { reason: e.message }, locale);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
//# sourceMappingURL=settings-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-card.js","sourceRoot":"","sources":["../../../src/im/lark/settings-card.ts"],"names":[],"mappings":"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"}
|