openclaw-weixin 3.0.2 → 3.1.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/CHANGELOG.md +20 -0
- package/CHANGELOG_EN.md +25 -0
- package/README.md +101 -50
- package/README_EN.md +113 -57
- package/dist/src/auth/accounts.js +313 -18
- package/dist/src/auth/accounts.js.map +1 -1
- package/dist/src/channel.js +106 -49
- package/dist/src/channel.js.map +1 -1
- package/dist/src/messaging/inbound.js +13 -8
- package/dist/src/messaging/inbound.js.map +1 -1
- package/dist/src/messaging/process-message.js +3 -2
- package/dist/src/messaging/process-message.js.map +1 -1
- package/dist/src/monitor/monitor.js +2 -0
- package/dist/src/monitor/monitor.js.map +1 -1
- package/docs/architecture.md +95 -103
- package/docs/architecture_EN.md +136 -0
- package/docs/backend-api.md +187 -196
- package/docs/backend-api_EN.md +347 -0
- package/docs/guide.md +45 -55
- package/docs/guide_EN.md +110 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +7 -7
- package/docs/backend-api.zh_CN.md +0 -338
- package/docs/guide.zh_CN.md +0 -99
|
@@ -49,22 +49,155 @@ export function listIndexedWeixinAccountIds() {
|
|
|
49
49
|
return [];
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* OpenClaw host sentinel passed to `auth.login` when the user omits `--account`.
|
|
54
|
+
* Must never become a durable runtime / credential alias.
|
|
55
|
+
*/
|
|
56
|
+
export const HOST_DEFAULT_ACCOUNT_ID = "default";
|
|
57
|
+
/** Atomically replace a JSON file (temp + rename) so mid-write failures keep the previous file. */
|
|
58
|
+
function writeJsonFileAtomic(filePath, value) {
|
|
59
|
+
const dir = path.dirname(filePath);
|
|
60
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
61
|
+
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
62
|
+
fs.writeFileSync(tmpPath, JSON.stringify(value, null, 2), "utf-8");
|
|
63
|
+
fs.renameSync(tmpPath, filePath);
|
|
64
|
+
}
|
|
65
|
+
/** Replace the persistent account index in a single atomic write. */
|
|
66
|
+
function writeAccountIndex(accountIds) {
|
|
67
|
+
writeJsonFileAtomic(resolveAccountIndexPath(), accountIds);
|
|
68
|
+
}
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
// Alias → primary hash map (logical; not a second monitor / state namespace)
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
function resolveAccountAliasMapPath() {
|
|
73
|
+
return path.join(resolveWeixinStateDir(), "account-aliases.json");
|
|
74
|
+
}
|
|
75
|
+
function loadAccountAliasMap() {
|
|
76
|
+
const filePath = resolveAccountAliasMapPath();
|
|
77
|
+
try {
|
|
78
|
+
if (!fs.existsSync(filePath))
|
|
79
|
+
return {};
|
|
80
|
+
const parsed = JSON.parse(fs.readFileSync(filePath, "utf-8"));
|
|
81
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
82
|
+
return {};
|
|
83
|
+
const out = {};
|
|
84
|
+
for (const [alias, primary] of Object.entries(parsed)) {
|
|
85
|
+
if (typeof alias !== "string" || typeof primary !== "string")
|
|
86
|
+
continue;
|
|
87
|
+
const a = alias.trim();
|
|
88
|
+
const p = primary.trim();
|
|
89
|
+
if (!a || !p)
|
|
90
|
+
continue;
|
|
91
|
+
out[a] = p;
|
|
92
|
+
}
|
|
93
|
+
return out;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return {};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function writeAccountAliasMap(map) {
|
|
100
|
+
writeJsonFileAtomic(resolveAccountAliasMapPath(), map);
|
|
101
|
+
}
|
|
102
|
+
/** Resolve alias → primary hash, or return the id itself when it is already primary. */
|
|
103
|
+
export function resolvePrimaryAccountId(accountId) {
|
|
104
|
+
const id = normalizeAccountId(accountId.trim());
|
|
105
|
+
if (!id)
|
|
106
|
+
return id;
|
|
107
|
+
const mapped = loadAccountAliasMap()[id];
|
|
108
|
+
return mapped ? normalizeAccountId(mapped) || id : id;
|
|
109
|
+
}
|
|
110
|
+
/** Reverse lookup: primary hash → public alias (if any). */
|
|
111
|
+
export function resolveAliasForPrimaryAccountId(primaryId) {
|
|
112
|
+
const primary = normalizeAccountId(primaryId.trim());
|
|
113
|
+
if (!primary)
|
|
114
|
+
return null;
|
|
115
|
+
for (const [alias, target] of Object.entries(loadAccountAliasMap())) {
|
|
116
|
+
if (normalizeAccountId(target) === primary)
|
|
117
|
+
return alias;
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Public account id for bindings / inbound routing: alias when mapped, else primary.
|
|
123
|
+
* Transport / poll cursor / context tokens / replay dedupe always stay on primary.
|
|
124
|
+
*/
|
|
125
|
+
export function resolvePublicAccountId(accountId) {
|
|
126
|
+
const primary = resolvePrimaryAccountId(accountId);
|
|
127
|
+
return resolveAliasForPrimaryAccountId(primary) ?? primary;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Bind a stable alias to a primary bot-hash id (1:1).
|
|
131
|
+
* Rejects conflicts where the alias or primary is already paired differently.
|
|
132
|
+
*/
|
|
133
|
+
export function bindWeixinAccountAlias(aliasId, primaryId) {
|
|
134
|
+
const alias = normalizeAccountId(aliasId.trim());
|
|
135
|
+
const primary = normalizeAccountId(primaryId.trim());
|
|
136
|
+
if (!alias || !primary) {
|
|
137
|
+
throw new Error("weixin: alias and primary account id are required");
|
|
138
|
+
}
|
|
139
|
+
if (alias === primary) {
|
|
140
|
+
throw new Error("weixin: alias must differ from the primary bot id");
|
|
141
|
+
}
|
|
142
|
+
if (alias.toLowerCase() === HOST_DEFAULT_ACCOUNT_ID) {
|
|
143
|
+
throw new Error("weixin: host default sentinel cannot be used as an alias");
|
|
144
|
+
}
|
|
145
|
+
const map = loadAccountAliasMap();
|
|
146
|
+
const existingPrimary = map[alias] ? normalizeAccountId(map[alias]) : null;
|
|
147
|
+
if (existingPrimary && existingPrimary !== primary) {
|
|
148
|
+
throw new Error("weixin: requested --account alias is already bound to a different bot. " +
|
|
149
|
+
"Choose another alias, or clear the existing alias mapping before rebinding.");
|
|
150
|
+
}
|
|
151
|
+
for (const [otherAlias, target] of Object.entries(map)) {
|
|
152
|
+
if (otherAlias === alias)
|
|
153
|
+
continue;
|
|
154
|
+
if (normalizeAccountId(target) === primary && otherAlias !== alias) {
|
|
155
|
+
throw new Error("weixin: this bot already has a different --account alias. " +
|
|
156
|
+
"Clear the existing alias mapping before assigning a new one.");
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
map[alias] = primary;
|
|
160
|
+
writeAccountAliasMap(map);
|
|
161
|
+
}
|
|
162
|
+
function unbindAliasesForPrimaryIds(primaryIds) {
|
|
163
|
+
const drop = new Set([...primaryIds].map((id) => normalizeAccountId(id.trim())).filter(Boolean));
|
|
164
|
+
if (drop.size === 0)
|
|
165
|
+
return;
|
|
166
|
+
const map = loadAccountAliasMap();
|
|
167
|
+
let changed = false;
|
|
168
|
+
for (const [alias, target] of Object.entries(map)) {
|
|
169
|
+
if (drop.has(normalizeAccountId(target))) {
|
|
170
|
+
delete map[alias];
|
|
171
|
+
changed = true;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (changed)
|
|
175
|
+
writeAccountAliasMap(map);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Reject binding when a leftover alias credential file already holds a different
|
|
179
|
+
* bot token. Never move sync / context / allow-list state between identities.
|
|
180
|
+
*/
|
|
181
|
+
function assertAliasCredentialCompatible(aliasId, primaryToken) {
|
|
182
|
+
const leftoverToken = loadWeixinAccount(aliasId)?.token?.trim();
|
|
183
|
+
if (leftoverToken && leftoverToken !== primaryToken.trim()) {
|
|
184
|
+
throw new Error("weixin: requested --account alias already has credentials for a different bot. " +
|
|
185
|
+
"Choose another alias, or clear the existing alias credentials before rebinding.");
|
|
186
|
+
}
|
|
187
|
+
}
|
|
52
188
|
/** Add accountId to the persistent index (no-op if already present). */
|
|
53
189
|
export function registerWeixinAccountId(accountId) {
|
|
54
|
-
const dir = resolveWeixinStateDir();
|
|
55
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
56
190
|
const existing = listIndexedWeixinAccountIds();
|
|
57
191
|
if (existing.includes(accountId))
|
|
58
192
|
return;
|
|
59
|
-
|
|
60
|
-
fs.writeFileSync(resolveAccountIndexPath(), JSON.stringify(updated, null, 2), "utf-8");
|
|
193
|
+
writeAccountIndex([...existing, accountId]);
|
|
61
194
|
}
|
|
62
195
|
/** Remove accountId from the persistent index. */
|
|
63
196
|
export function unregisterWeixinAccountId(accountId) {
|
|
64
197
|
const existing = listIndexedWeixinAccountIds();
|
|
65
198
|
const updated = existing.filter((id) => id !== accountId);
|
|
66
199
|
if (updated.length !== existing.length) {
|
|
67
|
-
|
|
200
|
+
writeAccountIndex(updated);
|
|
68
201
|
}
|
|
69
202
|
}
|
|
70
203
|
/**
|
|
@@ -72,23 +205,168 @@ export function unregisterWeixinAccountId(accountId) {
|
|
|
72
205
|
* Called after a successful QR login to ensure only the latest account remains
|
|
73
206
|
* for a given WeChat user, preventing ambiguous contextToken matches.
|
|
74
207
|
*
|
|
208
|
+
* @param keepAccountIds primary bot-hash ids that must not be deleted
|
|
209
|
+
* @param userId WeChat user id whose other indexed accounts should be removed
|
|
75
210
|
* @param onClearContextTokens callback to clear context tokens for the removed account
|
|
76
211
|
*/
|
|
77
|
-
export function clearStaleAccountsForUserId(
|
|
212
|
+
export function clearStaleAccountsForUserId(keepAccountIds, userId, onClearContextTokens) {
|
|
78
213
|
if (!userId)
|
|
79
214
|
return;
|
|
215
|
+
const keep = new Set((Array.isArray(keepAccountIds) ? keepAccountIds : [keepAccountIds])
|
|
216
|
+
.map((id) => resolvePrimaryAccountId(id.trim()))
|
|
217
|
+
.filter(Boolean));
|
|
218
|
+
if (keep.size === 0)
|
|
219
|
+
return;
|
|
80
220
|
const allIds = listIndexedWeixinAccountIds();
|
|
221
|
+
const removedPrimaries = [];
|
|
81
222
|
for (const id of allIds) {
|
|
82
|
-
|
|
223
|
+
const primary = resolvePrimaryAccountId(id);
|
|
224
|
+
if (keep.has(primary))
|
|
83
225
|
continue;
|
|
84
|
-
const data = loadWeixinAccount(id);
|
|
226
|
+
const data = loadWeixinAccount(primary) ?? loadWeixinAccount(id);
|
|
85
227
|
if (data?.userId?.trim() === userId) {
|
|
86
|
-
logger.info(
|
|
87
|
-
onClearContextTokens?.(
|
|
88
|
-
|
|
228
|
+
logger.info("clearStaleAccountsForUserId: removing stale account for same userId");
|
|
229
|
+
onClearContextTokens?.(primary);
|
|
230
|
+
if (id !== primary) {
|
|
231
|
+
onClearContextTokens?.(id);
|
|
232
|
+
clearWeixinAccount(id);
|
|
233
|
+
}
|
|
234
|
+
clearWeixinAccount(primary);
|
|
89
235
|
unregisterWeixinAccountId(id);
|
|
236
|
+
if (id !== primary)
|
|
237
|
+
unregisterWeixinAccountId(primary);
|
|
238
|
+
removedPrimaries.push(primary);
|
|
90
239
|
}
|
|
91
240
|
}
|
|
241
|
+
unbindAliasesForPrimaryIds(removedPrimaries);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Resolve a stable human alias to persist alongside the primary bot id.
|
|
245
|
+
* Returns null for missing input, the primary bot id itself, the OpenClaw
|
|
246
|
+
* `default` host sentinel, or an ephemeral UUID session key.
|
|
247
|
+
*/
|
|
248
|
+
export function resolveLoginAccountAlias(requestedAccountId, primaryNormalizedId) {
|
|
249
|
+
const raw = requestedAccountId?.trim();
|
|
250
|
+
if (!raw)
|
|
251
|
+
return null;
|
|
252
|
+
const alias = normalizeAccountId(raw);
|
|
253
|
+
if (!alias || alias === primaryNormalizedId)
|
|
254
|
+
return null;
|
|
255
|
+
if (alias.toLowerCase() === HOST_DEFAULT_ACCOUNT_ID)
|
|
256
|
+
return null;
|
|
257
|
+
// Ephemeral login session keys must never become durable account files.
|
|
258
|
+
if (/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(alias)) {
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
return alias;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Publish the primary bot-hash into the runtime index and drop any leftover
|
|
265
|
+
* alias ids (or other drop candidates) so one bot token never starts two monitors.
|
|
266
|
+
*/
|
|
267
|
+
function publishPrimaryAccountIndex(primaryId, dropFromIndex = []) {
|
|
268
|
+
const aliasKeys = new Set(Object.keys(loadAccountAliasMap()));
|
|
269
|
+
const drop = new Set([...dropFromIndex, ...aliasKeys].map((id) => id.trim()).filter((id) => id && id !== primaryId));
|
|
270
|
+
const next = listIndexedWeixinAccountIds()
|
|
271
|
+
.map((id) => resolvePrimaryAccountId(id))
|
|
272
|
+
.filter((id) => id && id !== primaryId && !drop.has(id));
|
|
273
|
+
const deduped = [];
|
|
274
|
+
const seen = new Set();
|
|
275
|
+
for (const id of next) {
|
|
276
|
+
if (seen.has(id))
|
|
277
|
+
continue;
|
|
278
|
+
seen.add(id);
|
|
279
|
+
deduped.push(id);
|
|
280
|
+
}
|
|
281
|
+
deduped.push(primaryId);
|
|
282
|
+
writeAccountIndex(deduped);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Persist QR-login credentials under the server bot-hash id. When the caller
|
|
286
|
+
* passed a stable `--account` alias, record a 1:1 alias→hash mapping for
|
|
287
|
+
* bindings / outbound resolution — without indexing the alias or starting a
|
|
288
|
+
* second monitor, and without relocating state namespaces onto the alias.
|
|
289
|
+
*/
|
|
290
|
+
export function persistWeixinLoginAccounts(params) {
|
|
291
|
+
const primaryId = normalizeAccountId(params.botAccountId);
|
|
292
|
+
if (!primaryId) {
|
|
293
|
+
throw new Error("weixin: bot accountId is required after login");
|
|
294
|
+
}
|
|
295
|
+
const creds = {
|
|
296
|
+
token: params.token,
|
|
297
|
+
baseUrl: params.baseUrl,
|
|
298
|
+
userId: params.userId,
|
|
299
|
+
};
|
|
300
|
+
saveWeixinAccount(primaryId, creds);
|
|
301
|
+
const aliasId = resolveLoginAccountAlias(params.requestedAccountId, primaryId);
|
|
302
|
+
if (aliasId) {
|
|
303
|
+
assertAliasCredentialCompatible(aliasId, params.token);
|
|
304
|
+
bindWeixinAccountAlias(aliasId, primaryId);
|
|
305
|
+
logger.info("persistWeixinLoginAccounts: bound alias mapping to primary bot id");
|
|
306
|
+
}
|
|
307
|
+
// Publish the primary index entry before destructive stale cleanup so a
|
|
308
|
+
// later failure cannot leave credentials undiscoverable after restart.
|
|
309
|
+
publishPrimaryAccountIndex(primaryId, aliasId ? [aliasId] : []);
|
|
310
|
+
if (params.userId?.trim()) {
|
|
311
|
+
clearStaleAccountsForUserId([primaryId], params.userId.trim(), params.onClearContextTokens);
|
|
312
|
+
}
|
|
313
|
+
return { primaryId, aliasId, canonicalId: primaryId };
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* When QR login returns `alreadyConnected` / `binded_redirect`, bind a requested
|
|
317
|
+
* stable `--account` alias onto an unambiguous local primary (hash) account.
|
|
318
|
+
*
|
|
319
|
+
* Does not rename the runtime account id: the primary hash stays indexed and
|
|
320
|
+
* owns all state. Returns null when no alias was requested (including the host
|
|
321
|
+
* `default` sentinel). Throws when the source binding is ambiguous / missing.
|
|
322
|
+
*/
|
|
323
|
+
export function migrateBoundAccountToAlias(params) {
|
|
324
|
+
// primary id unknown until we resolve the source credential; pass "" so only
|
|
325
|
+
// sentinel / UUID / empty checks apply before we know the hash id.
|
|
326
|
+
const aliasId = resolveLoginAccountAlias(params.requestedAccountId, "");
|
|
327
|
+
if (!aliasId)
|
|
328
|
+
return null;
|
|
329
|
+
const existingPrimary = resolvePrimaryAccountId(aliasId);
|
|
330
|
+
if (existingPrimary !== aliasId) {
|
|
331
|
+
// Alias already mapped — ensure the primary remains the sole indexed id.
|
|
332
|
+
publishPrimaryAccountIndex(existingPrimary, [aliasId]);
|
|
333
|
+
return { primaryId: existingPrimary, aliasId, canonicalId: existingPrimary };
|
|
334
|
+
}
|
|
335
|
+
const indexedWithToken = listIndexedWeixinAccountIds()
|
|
336
|
+
.map((id) => {
|
|
337
|
+
const primary = resolvePrimaryAccountId(id);
|
|
338
|
+
return { primary, data: loadWeixinAccount(primary) ?? loadWeixinAccount(id) };
|
|
339
|
+
})
|
|
340
|
+
.filter((entry) => Boolean(entry.data?.token?.trim()));
|
|
341
|
+
const uniquePrimaries = new Map();
|
|
342
|
+
for (const entry of indexedWithToken) {
|
|
343
|
+
uniquePrimaries.set(entry.primary, entry);
|
|
344
|
+
}
|
|
345
|
+
if (uniquePrimaries.size === 0) {
|
|
346
|
+
throw new Error("weixin: already connected, but no local credentials are available to bind the requested --account alias. " +
|
|
347
|
+
"Clear stale state or re-login with a fresh QR (force) so a token is issued.");
|
|
348
|
+
}
|
|
349
|
+
if (uniquePrimaries.size > 1) {
|
|
350
|
+
throw new Error(`weixin: already connected, but multiple bound accounts are ambiguous (${uniquePrimaries.size}). ` +
|
|
351
|
+
"Re-login with force for a single account, or remove the extra credentials before binding --account.");
|
|
352
|
+
}
|
|
353
|
+
const source = [...uniquePrimaries.values()][0];
|
|
354
|
+
const token = source.data.token?.trim();
|
|
355
|
+
if (!token) {
|
|
356
|
+
throw new Error("weixin: already connected, but the matched account has no token to bind to the requested --account alias.");
|
|
357
|
+
}
|
|
358
|
+
// Rerun with --account <existing-hash>: treat as no-op (not an alias bind).
|
|
359
|
+
if (aliasId === source.primary) {
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
assertAliasCredentialCompatible(aliasId, token);
|
|
363
|
+
bindWeixinAccountAlias(aliasId, source.primary);
|
|
364
|
+
publishPrimaryAccountIndex(source.primary, [aliasId]);
|
|
365
|
+
if (source.data.userId?.trim()) {
|
|
366
|
+
clearStaleAccountsForUserId([source.primary], source.data.userId.trim(), params.onClearContextTokens);
|
|
367
|
+
}
|
|
368
|
+
logger.info("migrateBoundAccountToAlias: bound alias mapping onto primary bot id");
|
|
369
|
+
return { primaryId: source.primary, aliasId, canonicalId: source.primary };
|
|
92
370
|
}
|
|
93
371
|
function resolveAccountsDir() {
|
|
94
372
|
return path.join(resolveWeixinStateDir(), "accounts");
|
|
@@ -289,24 +567,41 @@ export async function triggerWeixinChannelReload() {
|
|
|
289
567
|
logger.warn(`triggerWeixinChannelReload: failed to update config: ${String(err)}`);
|
|
290
568
|
}
|
|
291
569
|
}
|
|
292
|
-
/**
|
|
570
|
+
/**
|
|
571
|
+
* List primary bot-hash account ids for gateway monitors.
|
|
572
|
+
* Alias keys are never returned — they resolve via {@link resolveWeixinAccount}.
|
|
573
|
+
*/
|
|
293
574
|
export function listWeixinAccountIds(_cfg) {
|
|
294
|
-
|
|
575
|
+
const seen = new Set();
|
|
576
|
+
const out = [];
|
|
577
|
+
for (const id of listIndexedWeixinAccountIds()) {
|
|
578
|
+
const primary = resolvePrimaryAccountId(id);
|
|
579
|
+
if (!primary || seen.has(primary))
|
|
580
|
+
continue;
|
|
581
|
+
seen.add(primary);
|
|
582
|
+
out.push(primary);
|
|
583
|
+
}
|
|
584
|
+
return out;
|
|
295
585
|
}
|
|
296
|
-
/** Resolve a weixin account by ID, merging config and stored credentials. */
|
|
586
|
+
/** Resolve a weixin account by ID (alias or primary), merging config and stored credentials. */
|
|
297
587
|
export function resolveWeixinAccount(cfg, accountId) {
|
|
298
588
|
const raw = accountId?.trim();
|
|
299
589
|
if (!raw) {
|
|
300
590
|
throw new Error("weixin: accountId is required (no default account)");
|
|
301
591
|
}
|
|
302
|
-
const
|
|
592
|
+
const requestedId = normalizeAccountId(raw);
|
|
593
|
+
const primaryId = resolvePrimaryAccountId(requestedId);
|
|
594
|
+
const aliasId = resolveAliasForPrimaryAccountId(primaryId);
|
|
303
595
|
const section = cfg.channels?.["openclaw-weixin"];
|
|
304
|
-
const
|
|
305
|
-
const
|
|
596
|
+
const accounts = section?.accounts;
|
|
597
|
+
const accountCfg = accounts?.[requestedId] ?? (aliasId ? accounts?.[aliasId] : undefined) ?? accounts?.[primaryId] ?? section ?? {};
|
|
598
|
+
const accountData = loadWeixinAccount(primaryId) ?? loadWeixinAccount(requestedId);
|
|
306
599
|
const token = accountData?.token?.trim() || undefined;
|
|
307
600
|
const stateBaseUrl = accountData?.baseUrl?.trim() || "";
|
|
308
601
|
return {
|
|
309
|
-
accountId:
|
|
602
|
+
accountId: requestedId,
|
|
603
|
+
primaryId,
|
|
604
|
+
aliasId,
|
|
310
605
|
baseUrl: stateBaseUrl || DEFAULT_BASE_URL,
|
|
311
606
|
cdnBaseUrl: accountCfg.cdnBaseUrl?.trim() || CDN_BASE_URL,
|
|
312
607
|
token,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/auth/accounts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/auth/accounts.ts"],"names":[],"mappings":"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"}
|