downcity 1.1.125 → 1.1.127
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/package.json +3 -3
- package/town/agent/Run.js +2 -2
- package/town/agent/Run.js.map +1 -1
- package/town/command/CityCommand.d.ts.map +1 -1
- package/town/command/CityCommand.js +9 -1
- package/town/command/CityCommand.js.map +1 -1
- package/town/env/ProcessEnv.d.ts +1 -1
- package/town/env/ProcessEnv.d.ts.map +1 -1
- package/town/env/ProcessEnv.js +6 -1
- package/town/env/ProcessEnv.js.map +1 -1
- package/town/shared/CityBalance.d.ts +3 -4
- package/town/shared/CityBalance.d.ts.map +1 -1
- package/town/shared/CityBalance.js +24 -30
- package/town/shared/CityBalance.js.map +1 -1
- package/town/shared/CityConnection.d.ts +3 -10
- package/town/shared/CityConnection.d.ts.map +1 -1
- package/town/shared/CityConnection.js +71 -233
- package/town/shared/CityConnection.js.map +1 -1
- package/town/shared/CityStateStore.d.ts +63 -0
- package/town/shared/CityStateStore.d.ts.map +1 -0
- package/town/shared/CityStateStore.js +267 -0
- package/town/shared/CityStateStore.js.map +1 -0
- package/town/shared/CityUserLogin.d.ts.map +1 -1
- package/town/shared/CityUserLogin.js +30 -3
- package/town/shared/CityUserLogin.js.map +1 -1
- package/town/shared/CityUserManager.d.ts +38 -0
- package/town/shared/CityUserManager.d.ts.map +1 -0
- package/town/shared/CityUserManager.js +142 -0
- package/town/shared/CityUserManager.js.map +1 -0
- package/town/town/city-model/CityAiServiceBinding.d.ts +0 -35
- package/town/town/city-model/CityAiServiceBinding.d.ts.map +1 -1
- package/town/town/city-model/CityAiServiceBinding.js +17 -66
- package/town/town/city-model/CityAiServiceBinding.js.map +1 -1
- package/town/types/TownCityUser.d.ts +114 -0
- package/town/types/TownCityUser.d.ts.map +1 -0
- package/town/types/TownCityUser.js +9 -0
- package/town/types/TownCityUser.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "downcity",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.127",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Downcity CLI bundle — installs city and town commands",
|
|
6
6
|
"bin": {
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"prompts": "^2.4.2",
|
|
45
45
|
"ws": "^8.21.0",
|
|
46
46
|
"zod": "^4.4.3",
|
|
47
|
-
"@downcity/
|
|
47
|
+
"@downcity/agent": "^1.1.100",
|
|
48
48
|
"@downcity/plugins": "^1.0.51",
|
|
49
|
-
"@downcity/
|
|
49
|
+
"@downcity/city": "^0.2.56"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
52
52
|
"build": "node scripts/copy-cli-products.mjs && node scripts/ensure-cli-executable.mjs",
|
package/town/agent/Run.js
CHANGED
|
@@ -14,7 +14,7 @@ import { Agent, loadDowncityConfig, loadStaticSystemPrompts, shellTools, StaticP
|
|
|
14
14
|
import { createBuiltinPlugins } from "@downcity/plugins";
|
|
15
15
|
import { CliError } from "../shared/CliError.js";
|
|
16
16
|
import { createRuntimeModel } from "../town/city-model/CreateRuntimeModel.js";
|
|
17
|
-
import {
|
|
17
|
+
import { mergeProcessEnvWithPlatformGlobalEnv } from "../env/ProcessEnv.js";
|
|
18
18
|
import { resolveAgentId } from "../shared/IndexSupport.js";
|
|
19
19
|
import { startAgentHttpGateway } from "./AgentHttpGateway.js";
|
|
20
20
|
/**
|
|
@@ -29,7 +29,7 @@ import { startAgentHttpGateway } from "./AgentHttpGateway.js";
|
|
|
29
29
|
*/
|
|
30
30
|
export async function runCommand(cwd = ".", options) {
|
|
31
31
|
const projectRoot = path.resolve(cwd);
|
|
32
|
-
const hostEnv =
|
|
32
|
+
const hostEnv = mergeProcessEnvWithPlatformGlobalEnv();
|
|
33
33
|
// 端口解析(中文):允许 number / string;空值返回 undefined 以便走配置回退链。
|
|
34
34
|
const parsePort = (value, label) => {
|
|
35
35
|
if (value === undefined || value === null || value === "")
|
package/town/agent/Run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Run.js","sourceRoot":"","sources":["../../src/agent/Run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,uBAAuB,EACvB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Run.js","sourceRoot":"","sources":["../../src/agent/Run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CityCommand.d.ts","sourceRoot":"","sources":["../../src/command/CityCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"CityCommand.d.ts","sourceRoot":"","sources":["../../src/command/CityCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0FpE"}
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* - `city` CLI 只负责 admin/base 管理,`town city` 只负责 user login。
|
|
8
8
|
*/
|
|
9
9
|
import { parseBoolean } from "../shared/IndexSupport.js";
|
|
10
|
-
import { DEFAULT_TOWN_ID
|
|
10
|
+
import { DEFAULT_TOWN_ID } from "../shared/CityStateStore.js";
|
|
11
|
+
import { emitCityConnectionStatus, emitCityUserWhoami, emitCityServerList, runCityConnectCommand, runCityDisconnectCommand, runCityLoginCommand, runCityLogoutCommand, runCityUseCommand, runInteractiveCityManager, } from "../shared/CityConnection.js";
|
|
11
12
|
/**
|
|
12
13
|
* 注册 `town city` 命令组。
|
|
13
14
|
*/
|
|
@@ -37,6 +38,13 @@ export function registerCityConnectionCommand(program) {
|
|
|
37
38
|
.action((options) => {
|
|
38
39
|
emitCityServerList({ as_json: options.json === true });
|
|
39
40
|
});
|
|
41
|
+
city
|
|
42
|
+
.command("whoami")
|
|
43
|
+
.description("查看 Town 当前实际使用的 City user")
|
|
44
|
+
.option("--json [enabled]", "以 JSON 输出", parseBoolean)
|
|
45
|
+
.action(async (options) => {
|
|
46
|
+
await emitCityUserWhoami({ as_json: options.json === true });
|
|
47
|
+
});
|
|
40
48
|
city
|
|
41
49
|
.command("connect [url]")
|
|
42
50
|
.description("手动添加并选择一个 City base(默认 base.downcity.ai)")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CityCommand.js","sourceRoot":"","sources":["../../src/command/CityCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"CityCommand.js","sourceRoot":"","sources":["../../src/command/CityCommand.ts"],"names":[],"mappings":"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"}
|
package/town/env/ProcessEnv.d.ts
CHANGED
|
@@ -20,5 +20,5 @@ export declare function readPlatformGlobalEnv(): Record<string, string>;
|
|
|
20
20
|
* - 平台 global env 视为宿主层统一真相,应覆盖基础进程环境中的同名键。
|
|
21
21
|
* - 返回新对象,不直接修改传入参数。
|
|
22
22
|
*/
|
|
23
|
-
export declare function mergeProcessEnvWithPlatformGlobalEnv(baseEnv?: NodeJS.ProcessEnv):
|
|
23
|
+
export declare function mergeProcessEnvWithPlatformGlobalEnv(baseEnv?: NodeJS.ProcessEnv): Record<string, string>;
|
|
24
24
|
//# sourceMappingURL=ProcessEnv.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessEnv.d.ts","sourceRoot":"","sources":["../../src/env/ProcessEnv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAS9D;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,GAAE,MAAM,CAAC,UAAwB,GACvC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ProcessEnv.d.ts","sourceRoot":"","sources":["../../src/env/ProcessEnv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAS9D;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,GAAE,MAAM,CAAC,UAAwB,GACvC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB"}
|
package/town/env/ProcessEnv.js
CHANGED
|
@@ -33,8 +33,13 @@ export function readPlatformGlobalEnv() {
|
|
|
33
33
|
* - 返回新对象,不直接修改传入参数。
|
|
34
34
|
*/
|
|
35
35
|
export function mergeProcessEnvWithPlatformGlobalEnv(baseEnv = process.env) {
|
|
36
|
+
const merged = {};
|
|
37
|
+
for (const [key, value] of Object.entries(baseEnv)) {
|
|
38
|
+
if (typeof value === "string")
|
|
39
|
+
merged[key] = value;
|
|
40
|
+
}
|
|
36
41
|
return {
|
|
37
|
-
...
|
|
42
|
+
...merged,
|
|
38
43
|
...readPlatformGlobalEnv(),
|
|
39
44
|
};
|
|
40
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessEnv.js","sourceRoot":"","sources":["../../src/env/ProcessEnv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oCAAoC,CAClD,UAA6B,OAAO,CAAC,GAAG;IAExC,OAAO;
|
|
1
|
+
{"version":3,"file":"ProcessEnv.js","sourceRoot":"","sources":["../../src/env/ProcessEnv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oCAAoC,CAClD,UAA6B,OAAO,CAAC,GAAG;IAExC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACrD,CAAC;IACD,OAAO;QACL,GAAG,MAAM;QACT,GAAG,qBAAqB,EAAE;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -7,19 +7,18 @@
|
|
|
7
7
|
* - 交互菜单只调用这里的高层函数,避免 CityConnection 模块继续膨胀。
|
|
8
8
|
*/
|
|
9
9
|
import type { TownCityBalanceAccount, TownCityRechargeInput, TownCityRechargeResult } from "../types/TownCityBalance.js";
|
|
10
|
-
import type { TownCityUserSession } from "../types/TownCitySession.js";
|
|
11
10
|
/**
|
|
12
11
|
* 读取当前 Town City user 的余额。
|
|
13
12
|
*/
|
|
14
|
-
export declare function readCurrentTownCityBalance(
|
|
13
|
+
export declare function readCurrentTownCityBalance(): Promise<TownCityBalanceAccount>;
|
|
15
14
|
/**
|
|
16
15
|
* 给当前 Town City user 发起充值。
|
|
17
16
|
*/
|
|
18
|
-
export declare function rechargeCurrentTownCityUser(
|
|
17
|
+
export declare function rechargeCurrentTownCityUser(input: TownCityRechargeInput): Promise<TownCityRechargeResult>;
|
|
19
18
|
/**
|
|
20
19
|
* 输出当前 user 余额。
|
|
21
20
|
*/
|
|
22
|
-
export declare function emitCurrentTownCityBalance(
|
|
21
|
+
export declare function emitCurrentTownCityBalance(): Promise<void>;
|
|
23
22
|
/**
|
|
24
23
|
* 输出当前 user 充值结果。
|
|
25
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CityBalance.d.ts","sourceRoot":"","sources":["../../src/shared/CityBalance.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACV,sBAAsB,EAGtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"CityBalance.d.ts","sourceRoot":"","sources":["../../src/shared/CityBalance.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACV,sBAAsB,EAGtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AAKrC;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAKlF;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CA0BjC;AAmBD;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAchE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAoB/E"}
|
|
@@ -7,25 +7,24 @@
|
|
|
7
7
|
* - 交互菜单只调用这里的高层函数,避免 CityConnection 模块继续膨胀。
|
|
8
8
|
*/
|
|
9
9
|
import { spawnSync } from "node:child_process";
|
|
10
|
-
import { City } from "@downcity/city";
|
|
11
10
|
import { emitCliBlock } from "./CliReporter.js";
|
|
11
|
+
import { CityUserManager } from "./CityUserManager.js";
|
|
12
12
|
const DEFAULT_PAYMENT_METHOD_ID = "stripe";
|
|
13
|
+
const cityUserManager = new CityUserManager();
|
|
13
14
|
/**
|
|
14
15
|
* 读取当前 Town City user 的余额。
|
|
15
16
|
*/
|
|
16
|
-
export async function readCurrentTownCityBalance(
|
|
17
|
-
const client =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return
|
|
17
|
+
export async function readCurrentTownCityBalance() {
|
|
18
|
+
const { user, client } = await cityUserManager.createUserClient();
|
|
19
|
+
const account = await client.service("balance").get("me");
|
|
20
|
+
assertBalanceUserMatchesToken(account, user.user_id);
|
|
21
|
+
return account;
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
24
|
* 给当前 Town City user 发起充值。
|
|
24
25
|
*/
|
|
25
|
-
export async function rechargeCurrentTownCityUser(
|
|
26
|
-
const client =
|
|
27
|
-
if (!client)
|
|
28
|
-
return null;
|
|
26
|
+
export async function rechargeCurrentTownCityUser(input) {
|
|
27
|
+
const { client } = await cityUserManager.createUserClient();
|
|
29
28
|
const amount = normalizePositiveInteger(input.amount, "amount");
|
|
30
29
|
const method_id = normalizeText(input.method_id) || DEFAULT_PAYMENT_METHOD_ID;
|
|
31
30
|
const topup = await client.service("balance").action("topups/create").invoke({
|
|
@@ -50,13 +49,24 @@ export async function rechargeCurrentTownCityUser(session, input) {
|
|
|
50
49
|
opened,
|
|
51
50
|
};
|
|
52
51
|
}
|
|
52
|
+
function assertBalanceUserMatchesToken(account, token_user_id) {
|
|
53
|
+
if (!token_user_id) {
|
|
54
|
+
throw new Error("City user token resolved without a user_id. Run `town city login` again.");
|
|
55
|
+
}
|
|
56
|
+
if (account.user_id !== token_user_id) {
|
|
57
|
+
throw new Error([
|
|
58
|
+
"Balance account user does not match the authenticated token.",
|
|
59
|
+
`balance=${account.user_id}`,
|
|
60
|
+
`token=${token_user_id}`,
|
|
61
|
+
"Run `town city logout` and then `town city login`.",
|
|
62
|
+
].join(" "));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
53
65
|
/**
|
|
54
66
|
* 输出当前 user 余额。
|
|
55
67
|
*/
|
|
56
|
-
export async function emitCurrentTownCityBalance(
|
|
57
|
-
const account = await readCurrentTownCityBalance(
|
|
58
|
-
if (!account)
|
|
59
|
-
return;
|
|
68
|
+
export async function emitCurrentTownCityBalance() {
|
|
69
|
+
const account = await readCurrentTownCityBalance();
|
|
60
70
|
emitCliBlock({
|
|
61
71
|
tone: "success",
|
|
62
72
|
title: "User balance",
|
|
@@ -93,22 +103,6 @@ export function emitTownCityRechargeResult(result) {
|
|
|
93
103
|
: "Checkout URL was not returned by the payment service.",
|
|
94
104
|
});
|
|
95
105
|
}
|
|
96
|
-
function createCurrentUserCityClient(session) {
|
|
97
|
-
if (!session) {
|
|
98
|
-
emitCliBlock({
|
|
99
|
-
tone: "warning",
|
|
100
|
-
title: "City user not signed in",
|
|
101
|
-
note: "Run `town city login` first, or choose User 登录 in this manager.",
|
|
102
|
-
});
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
return new City({
|
|
106
|
-
role: "user",
|
|
107
|
-
city_url: session.base_url,
|
|
108
|
-
town_id: session.town_id,
|
|
109
|
-
user_token: session.user_token,
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
106
|
function normalizePositiveInteger(value, label) {
|
|
113
107
|
const amount = typeof value === "number" ? value : Number(value);
|
|
114
108
|
if (!Number.isInteger(amount) || amount <= 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CityBalance.js","sourceRoot":"","sources":["../../src/shared/CityBalance.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CityBalance.js","sourceRoot":"","sources":["../../src/shared/CityBalance.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,21 +8,14 @@
|
|
|
8
8
|
* - CLI 命令装配统一放在 `src/command/CityCommand.ts`,本模块只保留状态与登录流程。
|
|
9
9
|
*/
|
|
10
10
|
import type { TownCityConnectionState } from "../types/TownCityConnection.js";
|
|
11
|
-
import type { TownCityUserSession } from "../types/TownCitySession.js";
|
|
12
|
-
export declare const DEFAULT_CITY_URL = "https://base.downcity.ai";
|
|
13
|
-
export declare const DEFAULT_TOWN_ID = "town_downcity";
|
|
14
|
-
export declare function normalizeCityUrl(value: string): string;
|
|
15
11
|
export declare function readTownCityAdminSecretForBase(city_url: string): string | undefined;
|
|
16
|
-
export declare function readCurrentTownCitySession(): TownCityUserSession | null;
|
|
17
|
-
export declare function readTownCityUserSessionForRuntime(): {
|
|
18
|
-
city_url: string;
|
|
19
|
-
town_id: string;
|
|
20
|
-
user_token: string;
|
|
21
|
-
} | null;
|
|
22
12
|
export declare function readTownCityConnectionState(): TownCityConnectionState;
|
|
23
13
|
export declare function emitCityConnectionStatus(options?: {
|
|
24
14
|
as_json?: boolean;
|
|
25
15
|
}): void;
|
|
16
|
+
export declare function emitCityUserWhoami(options?: {
|
|
17
|
+
as_json?: boolean;
|
|
18
|
+
}): Promise<void>;
|
|
26
19
|
export declare function emitCityServerList(options?: {
|
|
27
20
|
as_json?: boolean;
|
|
28
21
|
}): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CityConnection.d.ts","sourceRoot":"","sources":["../../src/shared/CityConnection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"CityConnection.d.ts","sourceRoot":"","sources":["../../src/shared/CityConnection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,gCAAgC,CAAC;AAqBxC,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnF;AAcD,wBAAgB,2BAA2B,IAAI,uBAAuB,CA0BrE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA8B9E;AAED,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDvF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA+BxE;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BhB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChB;AAiBD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoChB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAiB1E;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAqB9E;AAkED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsD/D"}
|