downcity 1.1.148 → 1.1.150

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.
Files changed (47) hide show
  1. package/city/admin/commands/accounts.d.ts.map +1 -1
  2. package/city/admin/commands/accounts.js +12 -11
  3. package/city/admin/commands/accounts.js.map +1 -1
  4. package/city/admin/commands/balance.d.ts.map +1 -1
  5. package/city/admin/commands/balance.js +64 -48
  6. package/city/admin/commands/balance.js.map +1 -1
  7. package/city/admin/commands/custom.d.ts.map +1 -1
  8. package/city/admin/commands/custom.js +10 -3
  9. package/city/admin/commands/custom.js.map +1 -1
  10. package/city/admin/commands/instruction.d.ts.map +1 -1
  11. package/city/admin/commands/instruction.js +7 -2
  12. package/city/admin/commands/instruction.js.map +1 -1
  13. package/city/admin/commands/models.d.ts.map +1 -1
  14. package/city/admin/commands/models.js +21 -8
  15. package/city/admin/commands/models.js.map +1 -1
  16. package/city/admin/commands/payment.d.ts.map +1 -1
  17. package/city/admin/commands/payment.js +21 -17
  18. package/city/admin/commands/payment.js.map +1 -1
  19. package/city/admin/commands/service-env.d.ts.map +1 -1
  20. package/city/admin/commands/service-env.js +103 -44
  21. package/city/admin/commands/service-env.js.map +1 -1
  22. package/city/admin/commands/towns.d.ts.map +1 -1
  23. package/city/admin/commands/towns.js +21 -20
  24. package/city/admin/commands/towns.js.map +1 -1
  25. package/city/admin/commands/usage.d.ts.map +1 -1
  26. package/city/admin/commands/usage.js +12 -11
  27. package/city/admin/commands/usage.js.map +1 -1
  28. package/city/admin/loop.d.ts.map +1 -1
  29. package/city/admin/loop.js +43 -7
  30. package/city/admin/loop.js.map +1 -1
  31. package/city/tui/AdminTuiRuntime.d.ts.map +1 -1
  32. package/city/tui/AdminTuiRuntime.js +88 -27
  33. package/city/tui/AdminTuiRuntime.js.map +1 -1
  34. package/city/tui/CityDashboard.js +11 -7
  35. package/city/tui/CityDashboard.js.map +1 -1
  36. package/city/tui/Prompts.d.ts.map +1 -1
  37. package/city/tui/Prompts.js +79 -25
  38. package/city/tui/Prompts.js.map +1 -1
  39. package/city/tui/Shell.d.ts.map +1 -1
  40. package/city/tui/Shell.js +3 -2
  41. package/city/tui/Shell.js.map +1 -1
  42. package/package.json +1 -1
  43. package/town/tui/Prompts.d.ts.map +1 -1
  44. package/town/tui/Prompts.js +93 -28
  45. package/town/tui/Prompts.js.map +1 -1
  46. package/town/tui/TownDashboard.js +44 -16
  47. package/town/tui/TownDashboard.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/accounts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,wBAAsB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCzG"}
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/accounts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,wBAAsB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCzG"}
@@ -1,38 +1,39 @@
1
1
  /**
2
2
  * Admin Accounts 管理命令。
3
3
  */
4
+ import { t } from "../../i18n.js";
4
5
  import { adminErrorMessage, rethrowAdminAuthError } from "../auth-error.js";
5
6
  export async function manageAccounts(a, _baseUrl, runtime) {
6
7
  const svc = a.service("accounts");
7
8
  while (true) {
8
9
  const act = await runtime.select("Accounts", [
9
- { label: "List users", value: "users" },
10
- { label: "List sessions", value: "sessions" },
11
- { label: "Back", value: "back" },
10
+ { label: t({ zh: "查看用户", en: "List users" }), value: "users" },
11
+ { label: t({ zh: "查看会话", en: "List sessions" }), value: "sessions" },
12
+ { label: t({ zh: "返回", en: "Back" }), value: "back" },
12
13
  ]);
13
14
  if (!act || act === "back")
14
15
  return;
15
16
  try {
16
17
  if (act === "users") {
17
- const b = await runtime.with_loading("Users", async () => await svc.get("users"));
18
+ const b = await runtime.with_loading(t({ zh: "用户", en: "Users" }), async () => await svc.get("users"));
18
19
  await runtime.show_table({
19
- title: `${b.items.length} Users`,
20
- columns: ["User ID", "Email", "Created"],
20
+ title: t({ zh: `${b.items.length} 个用户`, en: `${b.items.length} Users` }),
21
+ columns: [t({ zh: "用户 ID", en: "User ID" }), t({ zh: "邮箱", en: "Email" }), t({ zh: "创建时间", en: "Created" })],
21
22
  rows: b.items.map((u) => ({
22
23
  cells: [u.user_id, u.email, u.created_at.slice(0, 10)],
23
24
  })),
24
- empty_message: "No users.",
25
+ empty_message: t({ zh: "暂无用户。", en: "No users." }),
25
26
  });
26
27
  }
27
28
  else {
28
- const b = await runtime.with_loading("Sessions", async () => await svc.get("sessions"));
29
+ const b = await runtime.with_loading(t({ zh: "会话", en: "Sessions" }), async () => await svc.get("sessions"));
29
30
  await runtime.show_table({
30
- title: `${b.items.length} Sessions`,
31
- columns: ["Session ID", "User ID", "Status"],
31
+ title: t({ zh: `${b.items.length} 个会话`, en: `${b.items.length} Sessions` }),
32
+ columns: [t({ zh: "会话 ID", en: "Session ID" }), t({ zh: "用户 ID", en: "User ID" }), t({ zh: "状态", en: "Status" })],
32
33
  rows: b.items.map((s) => ({
33
34
  cells: [s.session_id, s.user_id, s.status],
34
35
  })),
35
- empty_message: "No sessions.",
36
+ empty_message: t({ zh: "暂无会话。", en: "No sessions." }),
36
37
  });
37
38
  }
38
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/admin/commands/accounts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,CAAO,EAAE,QAAgB,EAAE,OAA0B;IACxF,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;YACzC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;YACvC,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE;YAC7C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SACjC,CAAC,CAAC;QACL,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO;QAEnC,IAAI,CAAC;YACH,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAsE,OAAO,CAAC,CAAC,CAAC;gBACvJ,MAAM,OAAO,CAAC,UAAU,CAAC;oBACvB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,QAAQ;oBAChC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;oBACxC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxB,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;qBACvD,CAAC,CAAC;oBACH,aAAa,EAAE,WAAW;iBAC3B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAuE,UAAU,CAAC,CAAC,CAAC;gBAC9J,MAAM,OAAO,CAAC,UAAU,CAAC;oBACvB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW;oBACnC,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC;oBAC5C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxB,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;qBAC3C,CAAC,CAAC;oBACH,aAAa,EAAE,cAAc;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/admin/commands/accounts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/balance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6JxG"}
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/balance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyKxG"}
@@ -1,80 +1,81 @@
1
1
  /**
2
2
  * Admin Balance 管理命令。
3
3
  */
4
+ import { t } from "../../i18n.js";
4
5
  import { adminErrorMessage, rethrowAdminAuthError } from "../auth-error.js";
5
6
  export async function manageBalance(a, _baseUrl, runtime) {
6
7
  while (true) {
7
8
  const act = await runtime.select("Balance", [
8
- { label: "List users", value: "users" },
9
- { label: "History", value: "history" },
10
- { label: "Topups", value: "topups" },
11
- { label: "Redeem codes", value: "redeem_codes" },
12
- { label: "Add balance", value: "add" },
13
- { label: "Subtract balance", value: "sub" },
14
- { label: "Finish topup", value: "finish" },
15
- { label: "Cancel topup", value: "cancel" },
16
- { label: "Create redeem code", value: "create_redeem_code" },
17
- { label: "Disable redeem code", value: "disable_redeem_code" },
18
- { label: "Back", value: "back" },
9
+ { label: t({ zh: "查看用户", en: "List users" }), value: "users" },
10
+ { label: t({ zh: "余额历史", en: "History" }), value: "history" },
11
+ { label: t({ zh: "充值单", en: "Topups" }), value: "topups" },
12
+ { label: t({ zh: "兑换码", en: "Redeem codes" }), value: "redeem_codes" },
13
+ { label: t({ zh: "增加余额", en: "Add balance" }), value: "add" },
14
+ { label: t({ zh: "扣减余额", en: "Subtract balance" }), value: "sub" },
15
+ { label: t({ zh: "完成充值单", en: "Finish topup" }), value: "finish" },
16
+ { label: t({ zh: "取消充值单", en: "Cancel topup" }), value: "cancel" },
17
+ { label: t({ zh: "创建兑换码", en: "Create redeem code" }), value: "create_redeem_code" },
18
+ { label: t({ zh: "停用兑换码", en: "Disable redeem code" }), value: "disable_redeem_code" },
19
+ { label: t({ zh: "返回", en: "Back" }), value: "back" },
19
20
  ]);
20
21
  if (!act || act === "back")
21
22
  return;
22
23
  try {
23
24
  if (act === "users") {
24
- const items = await runtime.with_loading("Balance Accounts", async () => await a.balance.listUsers(30));
25
+ const items = await runtime.with_loading(t({ zh: "余额账户", en: "Balance Accounts" }), async () => await a.balance.listUsers(30));
25
26
  await runtime.show_table({
26
- title: `${items.length} Balance Accounts`,
27
- columns: ["User", "Balance", "Unit", "Updated"],
27
+ title: t({ zh: `${items.length} 个余额账户`, en: `${items.length} Balance Accounts` }),
28
+ columns: [t({ zh: "用户", en: "User" }), t({ zh: "余额", en: "Balance" }), t({ zh: "单位", en: "Unit" }), t({ zh: "更新时间", en: "Updated" })],
28
29
  rows: items.map((item) => ({
29
30
  cells: [item.user_id, String(item.balance), item.unit, item.updated_at.slice(0, 19)],
30
31
  })),
31
- empty_message: "No balance accounts.",
32
+ empty_message: t({ zh: "暂无余额账户。", en: "No balance accounts." }),
32
33
  });
33
34
  continue;
34
35
  }
35
36
  if (act === "history") {
36
- const userId = await runtime.text("user_id (optional)");
37
- const items = await runtime.with_loading("Balance History", async () => await a.balance.listHistory({
37
+ const userId = await runtime.text(t({ zh: "user_id(可选)", en: "user_id (optional)" }));
38
+ const items = await runtime.with_loading(t({ zh: "余额历史", en: "Balance History" }), async () => await a.balance.listHistory({
38
39
  limit: 30,
39
40
  user_id: userId ?? "",
40
41
  }));
41
42
  await runtime.show_table({
42
- title: `${items.length} Balance History`,
43
- columns: ["Created", "User", "Kind", "Amount", "Balance After", "Note"],
43
+ title: t({ zh: `${items.length} 条余额历史`, en: `${items.length} Balance History` }),
44
+ columns: [t({ zh: "创建时间", en: "Created" }), t({ zh: "用户", en: "User" }), t({ zh: "类型", en: "Kind" }), t({ zh: "金额", en: "Amount" }), t({ zh: "变更后余额", en: "Balance After" }), t({ zh: "备注", en: "Note" })],
44
45
  rows: items.map((item) => ({
45
46
  cells: [item.created_at.slice(0, 19), item.user_id, item.kind, String(item.amount), String(item.balance_after), item.note],
46
47
  })),
47
- empty_message: "No balance history.",
48
+ empty_message: t({ zh: "暂无余额历史。", en: "No balance history." }),
48
49
  });
49
50
  continue;
50
51
  }
51
52
  if (act === "topups") {
52
- const userId = await runtime.text("user_id (optional)");
53
+ const userId = await runtime.text(t({ zh: "user_id(可选)", en: "user_id (optional)" }));
53
54
  const items = await runtime.with_loading("Topups", async () => await a.balance.listTopups({
54
55
  limit: 30,
55
56
  user_id: userId ?? "",
56
57
  }));
57
58
  await runtime.show_table({
58
- title: `${items.length} Topups`,
59
- columns: ["Topup ID", "User", "Amount", "Unit", "Status", "Note"],
59
+ title: t({ zh: `${items.length} 个充值单`, en: `${items.length} Topups` }),
60
+ columns: ["Topup ID", t({ zh: "用户", en: "User" }), t({ zh: "金额", en: "Amount" }), t({ zh: "单位", en: "Unit" }), t({ zh: "状态", en: "Status" }), t({ zh: "备注", en: "Note" })],
60
61
  rows: items.map((item) => ({
61
62
  cells: [item.topup_id, item.user_id, String(item.amount), item.unit, item.status, item.note],
62
63
  })),
63
- empty_message: "No topups.",
64
+ empty_message: t({ zh: "暂无充值单。", en: "No topups." }),
64
65
  });
65
66
  continue;
66
67
  }
67
68
  if (act === "redeem_codes") {
68
- const status = await runtime.text("status (optional: active/redeemed/disabled)");
69
- const userId = await runtime.text("redeemed_by_user_id (optional)");
70
- const items = await runtime.with_loading("Redeem Codes", async () => await a.balance.redeemCodes.list({
69
+ const status = await runtime.text(t({ zh: "status(可选:active/redeemed/disabled)", en: "status (optional: active/redeemed/disabled)" }));
70
+ const userId = await runtime.text(t({ zh: "redeemed_by_user_id(可选)", en: "redeemed_by_user_id (optional)" }));
71
+ const items = await runtime.with_loading(t({ zh: "兑换码", en: "Redeem Codes" }), async () => await a.balance.redeemCodes.list({
71
72
  limit: 30,
72
73
  status: normalizeRedeemCodeStatus(status),
73
74
  user_id: userId ?? "",
74
75
  }));
75
76
  await runtime.show_table({
76
- title: `${items.length} Redeem Codes`,
77
- columns: ["Redeem Code ID", "Code", "Amount", "Unit", "Status", "Owner", "Note"],
77
+ title: t({ zh: `${items.length} 个兑换码`, en: `${items.length} Redeem Codes` }),
78
+ columns: ["Redeem Code ID", t({ zh: "Code", en: "Code" }), t({ zh: "金额", en: "Amount" }), t({ zh: "单位", en: "Unit" }), t({ zh: "状态", en: "Status" }), t({ zh: "归属用户", en: "Owner" }), t({ zh: "备注", en: "Note" })],
78
79
  rows: items.map((item) => ({
79
80
  cells: [
80
81
  item.redeem_code_id,
@@ -86,7 +87,7 @@ export async function manageBalance(a, _baseUrl, runtime) {
86
87
  item.note,
87
88
  ],
88
89
  })),
89
- empty_message: "No redeem codes.",
90
+ empty_message: t({ zh: "暂无兑换码。", en: "No redeem codes." }),
90
91
  });
91
92
  continue;
92
93
  }
@@ -94,60 +95,72 @@ export async function manageBalance(a, _baseUrl, runtime) {
94
95
  const userId = await runtime.text("user_id");
95
96
  if (!userId)
96
97
  continue;
97
- const rawAmount = await runtime.text("amount");
98
+ const rawAmount = await runtime.text(t({ zh: "金额", en: "amount" }));
98
99
  if (!rawAmount)
99
100
  continue;
100
101
  const amount = Number(rawAmount);
101
102
  if (!Number.isInteger(amount) || amount <= 0) {
102
- await runtime.show_message("error", "amount must be a positive integer");
103
+ await runtime.show_message("error", t({ zh: "amount 必须是正整数", en: "amount must be a positive integer" }));
103
104
  continue;
104
105
  }
105
- const note = await runtime.text("note (optional)");
106
- const account = await runtime.with_loading("Update Balance", async () => act === "add"
106
+ const note = await runtime.text(t({ zh: "备注(可选)", en: "note (optional)" }));
107
+ const account = await runtime.with_loading(t({ zh: "更新余额", en: "Update Balance" }), async () => act === "add"
107
108
  ? await a.balance.add({ user_id: userId, amount, note: note ?? "" })
108
109
  : await a.balance.sub({ user_id: userId, amount, note: note ?? "" }));
109
- await runtime.show_message("success", `balance updated: ${account.user_id} -> ${account.balance} ${account.unit}`);
110
+ await runtime.show_message("success", t({
111
+ zh: `余额已更新:${account.user_id} -> ${account.balance} ${account.unit}`,
112
+ en: `balance updated: ${account.user_id} -> ${account.balance} ${account.unit}`,
113
+ }));
110
114
  continue;
111
115
  }
112
116
  if (act === "create_redeem_code") {
113
- const rawAmount = await runtime.text("amount");
117
+ const rawAmount = await runtime.text(t({ zh: "金额", en: "amount" }));
114
118
  if (!rawAmount)
115
119
  continue;
116
120
  const amount = Number(rawAmount);
117
121
  if (!Number.isInteger(amount) || amount <= 0) {
118
- await runtime.show_message("error", "amount must be a positive integer");
122
+ await runtime.show_message("error", t({ zh: "amount 必须是正整数", en: "amount must be a positive integer" }));
119
123
  continue;
120
124
  }
121
- const code = await runtime.text("custom redeem_code (optional)");
122
- const note = await runtime.text("note (optional)");
123
- const issued = await runtime.with_loading("Create Redeem Code", async () => await a.balance.redeemCodes.create({
125
+ const code = await runtime.text(t({ zh: "自定义 redeem_code(可选)", en: "custom redeem_code (optional)" }));
126
+ const note = await runtime.text(t({ zh: "备注(可选)", en: "note (optional)" }));
127
+ const issued = await runtime.with_loading(t({ zh: "创建兑换码", en: "Create Redeem Code" }), async () => await a.balance.redeemCodes.create({
124
128
  amount,
125
129
  code: code ?? "",
126
130
  note: note ?? "",
127
131
  }));
128
- await runtime.show_text("Redeem Code Created", `redeem_code created: ${issued.redeem_code_id}\ncode: ${issued.code}\namount: +${issued.amount} ${issued.unit}`);
132
+ await runtime.show_text(t({ zh: "兑换码已创建", en: "Redeem Code Created" }), t({
133
+ zh: `redeem_code 已创建:${issued.redeem_code_id}\ncode: ${issued.code}\namount: +${issued.amount} ${issued.unit}`,
134
+ en: `redeem_code created: ${issued.redeem_code_id}\ncode: ${issued.code}\namount: +${issued.amount} ${issued.unit}`,
135
+ }));
129
136
  continue;
130
137
  }
131
138
  if (act === "disable_redeem_code") {
132
139
  const redeemCodeId = await runtime.text("redeem_code_id");
133
140
  if (!redeemCodeId)
134
141
  continue;
135
- const note = await runtime.text("note (optional)");
136
- const item = await runtime.with_loading("Disable Redeem Code", async () => await a.balance.redeemCodes.disable({
142
+ const note = await runtime.text(t({ zh: "备注(可选)", en: "note (optional)" }));
143
+ const item = await runtime.with_loading(t({ zh: "停用兑换码", en: "Disable Redeem Code" }), async () => await a.balance.redeemCodes.disable({
137
144
  redeem_code_id: redeemCodeId,
138
145
  note: note ?? "",
139
146
  }));
140
- await runtime.show_message("success", `redeem_code updated: ${item.redeem_code_id} -> ${item.status}`);
147
+ await runtime.show_message("success", t({
148
+ zh: `redeem_code 已更新:${item.redeem_code_id} -> ${item.status}`,
149
+ en: `redeem_code updated: ${item.redeem_code_id} -> ${item.status}`,
150
+ }));
141
151
  continue;
142
152
  }
143
153
  const topupId = await runtime.text("topup_id");
144
154
  if (!topupId)
145
155
  continue;
146
- const note = await runtime.text("note (optional)");
147
- const topup = await runtime.with_loading("Update Topup", async () => act === "finish"
156
+ const note = await runtime.text(t({ zh: "备注(可选)", en: "note (optional)" }));
157
+ const topup = await runtime.with_loading(t({ zh: "更新充值单", en: "Update Topup" }), async () => act === "finish"
148
158
  ? await a.balance.finishTopup({ topup_id: topupId, note: note ?? "" })
149
159
  : await a.balance.cancelTopup({ topup_id: topupId, note: note ?? "" }));
150
- await runtime.show_message("success", `topup updated: ${topup.topup_id} -> ${topup.status}`);
160
+ await runtime.show_message("success", t({
161
+ zh: `充值单已更新:${topup.topup_id} -> ${topup.status}`,
162
+ en: `topup updated: ${topup.topup_id} -> ${topup.status}`,
163
+ }));
151
164
  }
152
165
  catch (e) {
153
166
  rethrowAdminAuthError(e);
@@ -162,6 +175,9 @@ function normalizeRedeemCodeStatus(value) {
162
175
  if (normalized === "active" || normalized === "redeemed" || normalized === "disabled") {
163
176
  return normalized;
164
177
  }
165
- throw new TypeError("status must be active, redeemed, or disabled");
178
+ throw new TypeError(t({
179
+ zh: "status 必须是 active、redeemed 或 disabled",
180
+ en: "status must be active, redeemed, or disabled",
181
+ }));
166
182
  }
167
183
  //# sourceMappingURL=balance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/admin/commands/balance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/admin/commands/balance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/custom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCvG"}
1
+ {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/custom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCvG"}
@@ -1,16 +1,20 @@
1
1
  /**
2
2
  * Admin Custom Service 命令。
3
3
  */
4
+ import { t } from "../../i18n.js";
4
5
  import { adminErrorMessage, rethrowAdminAuthError } from "../auth-error.js";
5
6
  export async function manageCustom(a, _baseUrl, runtime) {
6
7
  while (true) {
7
- const name = await runtime.text("service name (empty to go back)");
8
+ const name = await runtime.text(t({
9
+ zh: "服务名称(留空返回)",
10
+ en: "service name (empty to go back)",
11
+ }));
8
12
  if (!name)
9
13
  return;
10
14
  const act = await runtime.select(name, [
11
15
  { label: "GET", value: "get" },
12
16
  { label: "POST", value: "post" },
13
- { label: "Back", value: "back" },
17
+ { label: t({ zh: "返回", en: "Back" }), value: "back" },
14
18
  ]);
15
19
  if (!act || act === "back")
16
20
  return;
@@ -28,7 +32,10 @@ export async function manageCustom(a, _baseUrl, runtime) {
28
32
  body = JSON.parse(raw);
29
33
  }
30
34
  catch {
31
- await runtime.show_message("error", "Invalid JSON body");
35
+ await runtime.show_message("error", t({
36
+ zh: "JSON body 无效",
37
+ en: "Invalid JSON body",
38
+ }));
32
39
  continue;
33
40
  }
34
41
  const result = await runtime.with_loading(`${name} POST`, async () => await svc.action("").invoke(body));
@@ -1 +1 @@
1
- {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../src/admin/commands/custom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,CAAO,EAAE,QAAgB,EAAE,OAA0B;IACtF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;YACnC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;YAC9B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SACjC,CAAC,CAAC;QACL,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO;QAEnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1F,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,QAAQ,IAAI,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;gBACtD,IAAI,IAA6B,CAAC;gBAClC,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;oBACzD,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzG,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,OAAO,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../src/admin/commands/custom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,CAAO,EAAE,QAAgB,EAAE,OAA0B;IACtF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAChC,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,iCAAiC;SACtC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;YACnC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;YAC9B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;SACtD,CAAC,CAAC;QACL,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO;QAEnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1F,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,QAAQ,IAAI,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;gBACtD,IAAI,IAA6B,CAAC;gBAClC,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;wBACpC,EAAE,EAAE,cAAc;wBAClB,EAAE,EAAE,mBAAmB;qBACxB,CAAC,CAAC,CAAC;oBACJ,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzG,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,OAAO,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/instruction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,CAAC,EAAE,IAAI,EACP,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAGf"}
1
+ {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/instruction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,CAAC,EAAE,IAAI,EACP,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -1,11 +1,16 @@
1
1
  /**
2
2
  * Admin City 说明文档查看命令。
3
3
  */
4
+ import { t } from "../../i18n.js";
4
5
  /**
5
6
  * 展示当前 City 聚合后的说明文档。
6
7
  */
7
8
  export async function manageInstruction(a, _baseUrl, runtime) {
8
- const content = await runtime.with_loading("City Instruction", async () => await a.instruction());
9
- await runtime.show_text("City Instruction", content);
9
+ const title = t({
10
+ zh: "City 指令",
11
+ en: "City Instruction",
12
+ });
13
+ const content = await runtime.with_loading(title, async () => await a.instruction());
14
+ await runtime.show_text(title, content);
10
15
  }
11
16
  //# sourceMappingURL=instruction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instruction.js","sourceRoot":"","sources":["../../../src/admin/commands/instruction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,CAAO,EACP,QAAgB,EAChB,OAA0B;IAE1B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAClG,MAAM,OAAO,CAAC,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"instruction.js","sourceRoot":"","sources":["../../../src/admin/commands/instruction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAGlC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,CAAO,EACP,QAAgB,EAChB,OAA0B;IAE1B,MAAM,KAAK,GAAG,CAAC,CAAC;QACd,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,kBAAkB;KACvB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrF,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DvG"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEvG"}
@@ -13,7 +13,8 @@ import { t } from "../../i18n.js";
13
13
  */
14
14
  export async function manageModels(a, _baseUrl, runtime) {
15
15
  try {
16
- const [modelResp, envCatalog] = await runtime.with_loading("Models", async () => await Promise.all([
16
+ const model_title = t({ zh: "模型", en: "Models" });
17
+ const [modelResp, envCatalog] = await runtime.with_loading(model_title, async () => await Promise.all([
17
18
  a.listModels(),
18
19
  a.env.catalog(),
19
20
  ]));
@@ -28,27 +29,39 @@ export async function manageModels(a, _baseUrl, runtime) {
28
29
  return;
29
30
  }
30
31
  await runtime.show_table({
31
- title: `${items.length} Models`,
32
- columns: ["Name", "Status", "Modalities", "Defaults", "Env", "Description"],
32
+ title: t({ zh: `${items.length} 个模型`, en: `${items.length} Models` }),
33
+ columns: [
34
+ t({ zh: "名称", en: "Name" }),
35
+ t({ zh: "状态", en: "Status" }),
36
+ t({ zh: "模态", en: "Modalities" }),
37
+ t({ zh: "默认值", en: "Defaults" }),
38
+ "Env",
39
+ t({ zh: "说明", en: "Description" }),
40
+ ],
33
41
  rows: items.map((model) => {
34
42
  const requirements = model.env_requirements ?? [];
35
43
  const missingEnv = requirements
36
44
  .filter((item) => item.required && !envMap.get(item.key))
37
45
  .map((item) => item.key);
38
- const status = missingEnv.length === 0 ? "READY" : `MISSING ${missingEnv.join(", ")}`;
46
+ const status = missingEnv.length === 0
47
+ ? t({ zh: "就绪", en: "READY" })
48
+ : t({ zh: `缺失 ${missingEnv.join(", ")}`, en: `MISSING ${missingEnv.join(", ")}` });
39
49
  const defaults = (model.default_modes ?? []).length > 0
40
- ? `default: ${(model.default_modes ?? []).join(", ")}`
41
- : "default: none";
50
+ ? t({
51
+ zh: `默认:${(model.default_modes ?? []).join(", ")}`,
52
+ en: `default: ${(model.default_modes ?? []).join(", ")}`,
53
+ })
54
+ : t({ zh: "默认:无", en: "default: none" });
42
55
  const envText = requirements.length > 0
43
56
  ? requirements
44
57
  .map((item) => `${item.key}${envMap.get(item.key) ? "✓" : "✗"}`)
45
58
  .join(", ")
46
- : "none";
59
+ : t({ zh: "无", en: "none" });
47
60
  return {
48
61
  cells: [
49
62
  `${model.name} (${model.id})`,
50
63
  status,
51
- model.modalities.join(", ") || "none",
64
+ model.modalities.join(", ") || t({ zh: "无", en: "none" }),
52
65
  defaults,
53
66
  envText,
54
67
  model.description ?? "",
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/admin/commands/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/admin/commands/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAGlC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,CAAO,EAAE,QAAgB,EAAE,OAA0B;IACtF,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC;YACpG,CAAC,CAAC,UAAU,EAAE;YACd,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;SAChB,CAAC,CAAC,CAAC;QACJ,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAEtF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnC,EAAE,EAAE,0BAA0B;gBAC9B,EAAE,EAAE,iCAAiC;aACtC,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,MAAM,OAAO,CAAC,UAAU,CAAC;YACvB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,SAAS,EAAE,CAAC;YACrE,OAAO,EAAE;gBACP,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;gBAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;gBAC7B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;gBACjC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;gBAChC,KAAK;gBACL,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC;aACnC;YACD,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;gBAClD,MAAM,UAAU,GAAG,YAAY;qBAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACxD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC;oBACpC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;oBAC9B,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrF,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;oBACrD,CAAC,CAAC,CAAC,CAAC;wBACF,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAClD,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBACzD,CAAC;oBACF,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;oBACrC,CAAC,CAAC,YAAY;yBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;yBAC/D,IAAI,CAAC,IAAI,CAAC;oBACb,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC/B,OAAO;oBACL,KAAK,EAAE;wBACL,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,GAAG;wBAC7B,MAAM;wBACN,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;wBACzD,QAAQ;wBACR,OAAO;wBACP,KAAK,CAAC,WAAW,IAAI,EAAE;qBACxB;iBACF,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpC,EAAE,EAAE,6DAA6D;gBACjE,EAAE,EAAE,2GAA2G;aAChH,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QACD,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/payment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAgCjE,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDvG"}
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/payment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAItC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAgCjE,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDvG"}
@@ -2,52 +2,56 @@
2
2
  * Admin Payment 管理命令。
3
3
  */
4
4
  import { buildStripeEndpoints } from "../../core/stripe.js";
5
+ import { t } from "../../i18n.js";
5
6
  import { adminErrorMessage, rethrowAdminAuthError } from "../auth-error.js";
6
7
  export async function managePayment(a, baseUrl, runtime) {
7
8
  const svc = a.service("payment.stripe");
8
9
  const endpoints = buildStripeEndpoints(baseUrl);
9
10
  while (true) {
10
11
  const act = await runtime.select("Payment", [
11
- { label: "Show webhook setup", value: "webhook", hint: endpoints.webhook_url },
12
- { label: "List payments", value: "payments" },
13
- { label: "List webhook events", value: "events" },
14
- { label: "Back", value: "back" },
12
+ { label: t({ zh: "查看 webhook 配置", en: "Show webhook setup" }), value: "webhook", hint: endpoints.webhook_url },
13
+ { label: t({ zh: "查看支付记录", en: "List payments" }), value: "payments" },
14
+ { label: t({ zh: "查看 webhook 事件", en: "List webhook events" }), value: "events" },
15
+ { label: t({ zh: "返回", en: "Back" }), value: "back" },
15
16
  ]);
16
17
  if (!act || act === "back")
17
18
  return;
18
19
  try {
19
20
  if (act === "webhook") {
20
- await runtime.show_text("Stripe Webhook Setup", [
21
- `Server URL: ${endpoints.base_url}`,
22
- `Stripe webhook endpoint: ${endpoints.webhook_url}`,
23
- "Recommended Stripe events:",
21
+ await runtime.show_text(t({ zh: "Stripe Webhook 配置", en: "Stripe Webhook Setup" }), [
22
+ `${t({ zh: "Server URL", en: "Server URL" })}: ${endpoints.base_url}`,
23
+ `${t({ zh: "Stripe webhook endpoint", en: "Stripe webhook endpoint" })}: ${endpoints.webhook_url}`,
24
+ t({ zh: "推荐 Stripe events:", en: "Recommended Stripe events:" }),
24
25
  "- checkout.session.completed",
25
26
  "- checkout.session.expired",
26
27
  "- payment_intent.payment_failed",
27
- "After creating the endpoint in Stripe Dashboard, copy its Signing secret into STRIPE_WEBHOOK_SECRET.",
28
+ t({
29
+ zh: "在 Stripe Dashboard 创建 endpoint 后,将 Signing secret 复制到 STRIPE_WEBHOOK_SECRET。",
30
+ en: "After creating the endpoint in Stripe Dashboard, copy its Signing secret into STRIPE_WEBHOOK_SECRET.",
31
+ }),
28
32
  ].join("\n"));
29
33
  continue;
30
34
  }
31
35
  if (act === "payments") {
32
- const result = await runtime.with_loading("Payments", async () => await svc.get("payments"));
36
+ const result = await runtime.with_loading(t({ zh: "支付记录", en: "Payments" }), async () => await svc.get("payments"));
33
37
  await runtime.show_table({
34
- title: `${result.items.length} Payments`,
35
- columns: ["Updated", "User", "Amount", "Currency", "Status", "Payment ID"],
38
+ title: t({ zh: `${result.items.length} 条支付记录`, en: `${result.items.length} Payments` }),
39
+ columns: [t({ zh: "更新时间", en: "Updated" }), t({ zh: "用户", en: "User" }), t({ zh: "金额", en: "Amount" }), t({ zh: "币种", en: "Currency" }), t({ zh: "状态", en: "Status" }), "Payment ID"],
36
40
  rows: result.items.map((item) => ({
37
41
  cells: [item.updated_at.slice(0, 19), item.user_id, String(item.amount), item.currency, item.status, item.payment_id],
38
42
  })),
39
- empty_message: "No payments.",
43
+ empty_message: t({ zh: "暂无支付记录。", en: "No payments." }),
40
44
  });
41
45
  continue;
42
46
  }
43
- const result = await runtime.with_loading("Webhook Events", async () => await svc.get("events"));
47
+ const result = await runtime.with_loading(t({ zh: "Webhook 事件", en: "Webhook Events" }), async () => await svc.get("events"));
44
48
  await runtime.show_table({
45
- title: `${result.items.length} Webhook Events`,
46
- columns: ["Created", "Type", "Status", "Event ID", "Error"],
49
+ title: t({ zh: `${result.items.length} Webhook 事件`, en: `${result.items.length} Webhook Events` }),
50
+ columns: [t({ zh: "创建时间", en: "Created" }), t({ zh: "类型", en: "Type" }), t({ zh: "状态", en: "Status" }), "Event ID", t({ zh: "错误", en: "Error" })],
47
51
  rows: result.items.map((item) => ({
48
52
  cells: [item.created_at.slice(0, 19), item.type, item.sync_status, item.event_id, item.sync_error || ""],
49
53
  })),
50
- empty_message: "No webhook events.",
54
+ empty_message: t({ zh: "暂无 webhook 事件。", en: "No webhook events." }),
51
55
  });
52
56
  }
53
57
  catch (e) {