@downcity/city 0.2.82 → 0.2.93
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/README.md +10 -10
- package/bin/client/city.d.ts +90 -0
- package/bin/client/city.d.ts.map +1 -0
- package/bin/{city → client}/city.js +32 -22
- package/bin/client/city.js.map +1 -0
- package/bin/client/types.d.ts +77 -0
- package/bin/client/types.d.ts.map +1 -0
- package/bin/client/types.js +8 -0
- package/bin/{core → client}/types.js.map +1 -1
- package/bin/{core → federation}/auth/authenticator.d.ts +7 -7
- package/bin/federation/auth/authenticator.d.ts.map +1 -0
- package/bin/{core → federation}/auth/authenticator.js +15 -15
- package/bin/federation/auth/authenticator.js.map +1 -0
- package/bin/federation/auth/token-signer.d.ts.map +1 -0
- package/bin/{core → federation}/auth/token-signer.js +4 -4
- package/bin/federation/auth/token-signer.js.map +1 -0
- package/bin/{core → federation}/auth/types.d.ts +6 -6
- package/bin/federation/auth/types.d.ts.map +1 -0
- package/bin/federation/auth/types.js.map +1 -0
- package/bin/federation/federation-env-catalog.d.ts +13 -0
- package/bin/federation/federation-env-catalog.d.ts.map +1 -0
- package/bin/{core/base/base-env-catalog.js → federation/federation-env-catalog.js} +5 -5
- package/bin/federation/federation-env-catalog.js.map +1 -0
- package/bin/{core/base/base-init.d.ts → federation/federation-init.d.ts} +17 -17
- package/bin/federation/federation-init.d.ts.map +1 -0
- package/bin/{core/base/base-init.js → federation/federation-init.js} +27 -27
- package/bin/federation/federation-init.js.map +1 -0
- package/bin/federation/federation-instruction.d.ts +11 -0
- package/bin/federation/federation-instruction.d.ts.map +1 -0
- package/bin/{core/base/base-instruction.js → federation/federation-instruction.js} +4 -4
- package/bin/federation/federation-instruction.js.map +1 -0
- package/bin/{core/base/base-router.d.ts → federation/federation-router.d.ts} +11 -11
- package/bin/federation/federation-router.d.ts.map +1 -0
- package/bin/{core/base/base-router.js → federation/federation-router.js} +62 -45
- package/bin/federation/federation-router.js.map +1 -0
- package/bin/{core/base/base-runtime.d.ts → federation/federation-runtime.d.ts} +6 -6
- package/bin/federation/federation-runtime.d.ts.map +1 -0
- package/bin/{core/base/base-runtime.js → federation/federation-runtime.js} +10 -10
- package/bin/federation/federation-runtime.js.map +1 -0
- package/bin/{core/base/base.d.ts → federation/federation.d.ts} +15 -15
- package/bin/federation/federation.d.ts.map +1 -0
- package/bin/{core/base/base.js → federation/federation.js} +22 -22
- package/bin/federation/federation.js.map +1 -0
- package/bin/{core → federation}/runtime.d.ts +9 -9
- package/bin/federation/runtime.d.ts.map +1 -0
- package/bin/federation/runtime.js +13 -0
- package/bin/federation/runtime.js.map +1 -0
- package/bin/{core → federation}/types.d.ts +6 -6
- package/bin/federation/types.d.ts.map +1 -0
- package/bin/{city/user → federation}/types.js.map +1 -1
- package/bin/index.d.ts +23 -26
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +13 -15
- package/bin/index.js.map +1 -1
- package/bin/{city → pact}/admin/index.d.ts +23 -7
- package/bin/pact/admin/index.d.ts.map +1 -0
- package/bin/{city → pact}/admin/index.js +21 -8
- package/bin/pact/admin/index.js.map +1 -0
- package/bin/{city → pact}/admin/types.d.ts +7 -1
- package/bin/pact/admin/types.d.ts.map +1 -0
- package/bin/pact/admin/types.js.map +1 -0
- package/bin/{city → pact}/http.d.ts.map +1 -1
- package/bin/{city → pact}/http.js.map +1 -1
- package/bin/{city → pact}/invoker/ai/index.d.ts +1 -1
- package/bin/{city → pact}/invoker/ai/index.d.ts.map +1 -1
- package/bin/{city → pact}/invoker/ai/index.js +1 -1
- package/bin/{city → pact}/invoker/ai/index.js.map +1 -1
- package/bin/{city → pact}/invoker/ai/stream.d.ts +1 -1
- package/bin/{city → pact}/invoker/ai/stream.d.ts.map +1 -1
- package/bin/{city → pact}/invoker/ai/stream.js +1 -1
- package/bin/{city → pact}/invoker/ai/stream.js.map +1 -1
- package/bin/{city → pact}/invoker/ai/types.d.ts +2 -2
- package/bin/{city → pact}/invoker/ai/types.d.ts.map +1 -1
- package/bin/pact/invoker/ai/types.js +9 -0
- package/bin/pact/invoker/ai/types.js.map +1 -0
- package/bin/{city → pact}/invoker/balance/index.d.ts.map +1 -1
- package/bin/{city → pact}/invoker/balance/index.js.map +1 -1
- package/bin/{city → pact}/invoker/balance/types.d.ts.map +1 -1
- package/bin/pact/invoker/balance/types.js.map +1 -0
- package/bin/pact/invoker/cities/index.d.ts +46 -0
- package/bin/pact/invoker/cities/index.d.ts.map +1 -0
- package/bin/{city/invoker/towns → pact/invoker/cities}/index.js +16 -16
- package/bin/pact/invoker/cities/index.js.map +1 -0
- package/bin/pact/invoker/cities/types.d.ts +46 -0
- package/bin/pact/invoker/cities/types.d.ts.map +1 -0
- package/bin/pact/invoker/cities/types.js +5 -0
- package/bin/pact/invoker/cities/types.js.map +1 -0
- package/bin/{city → pact}/invoker/env/index.d.ts +2 -2
- package/bin/{city → pact}/invoker/env/index.d.ts.map +1 -1
- package/bin/{city → pact}/invoker/env/index.js +2 -2
- package/bin/{city → pact}/invoker/env/index.js.map +1 -1
- package/bin/{city → pact}/invoker/env/types.d.ts +2 -2
- package/bin/{city → pact}/invoker/env/types.d.ts.map +1 -1
- package/bin/pact/invoker/env/types.js +5 -0
- package/bin/pact/invoker/env/types.js.map +1 -0
- package/bin/{city → pact}/invoker/invoker.d.ts +9 -9
- package/bin/{city → pact}/invoker/invoker.d.ts.map +1 -1
- package/bin/{city → pact}/invoker/invoker.js +11 -11
- package/bin/{city → pact}/invoker/invoker.js.map +1 -1
- package/bin/{city → pact}/invoker/payment/index.d.ts +1 -1
- package/bin/{city → pact}/invoker/payment/index.d.ts.map +1 -1
- package/bin/{city → pact}/invoker/payment/index.js +1 -1
- package/bin/{city → pact}/invoker/payment/index.js.map +1 -1
- package/bin/{city → pact}/invoker/payment/types.d.ts +1 -1
- package/bin/{city → pact}/invoker/payment/types.d.ts.map +1 -1
- package/bin/pact/invoker/payment/types.js.map +1 -0
- package/bin/{city → pact}/user/index.d.ts +5 -5
- package/bin/{city → pact}/user/index.d.ts.map +1 -1
- package/bin/{city → pact}/user/index.js +9 -9
- package/bin/{city → pact}/user/index.js.map +1 -1
- package/bin/{city → pact}/user/types.d.ts +3 -3
- package/bin/{city → pact}/user/types.d.ts.map +1 -1
- package/bin/pact/user/types.js.map +1 -0
- package/bin/service/ai/ai-service.js +3 -3
- package/bin/service/ai/helpers.js +2 -2
- package/bin/service/ai/job-types.d.ts +8 -8
- package/bin/service/ai/job-types.d.ts.map +1 -1
- package/bin/service/ai/schema.d.ts +4 -4
- package/bin/service/ai/schema.js +6 -6
- package/bin/service/ai/schema.js.map +1 -1
- package/bin/service/cities/cities-service.d.ts +15 -0
- package/bin/service/cities/cities-service.d.ts.map +1 -0
- package/bin/service/{towns/towns-service.js → cities/cities-service.js} +17 -17
- package/bin/service/cities/cities-service.js.map +1 -0
- package/bin/service/cities/city-store.d.ts +17 -0
- package/bin/service/cities/city-store.d.ts.map +1 -0
- package/bin/service/{towns/town-store.js → cities/city-store.js} +17 -17
- package/bin/service/cities/city-store.js.map +1 -0
- package/bin/service/{towns → cities}/schema.d.ts +23 -23
- package/bin/service/cities/schema.d.ts.map +1 -0
- package/bin/service/cities/schema.js +60 -0
- package/bin/service/cities/schema.js.map +1 -0
- package/bin/service/cities/types.d.ts +51 -0
- package/bin/service/cities/types.d.ts.map +1 -0
- package/bin/service/cities/types.js +7 -0
- package/bin/service/cities/types.js.map +1 -0
- package/bin/service/env/env-service.d.ts +2 -2
- package/bin/service/env/env-service.js +3 -3
- package/bin/service/env/env-service.js.map +1 -1
- package/bin/service/env/types.d.ts +2 -2
- package/bin/service/env/types.js +1 -1
- package/bin/service/installable-service.d.ts +43 -12
- package/bin/service/installable-service.d.ts.map +1 -1
- package/bin/service/installable-service.js +20 -3
- package/bin/service/installable-service.js.map +1 -1
- package/bin/service/instruction.d.ts +2 -2
- package/bin/service/instruction.js +5 -5
- package/bin/service/instruction.js.map +1 -1
- package/bin/service/service.d.ts +45 -9
- package/bin/service/service.d.ts.map +1 -1
- package/bin/service/service.js +32 -2
- package/bin/service/service.js.map +1 -1
- package/package.json +3 -3
- package/bin/city/admin/index.d.ts.map +0 -1
- package/bin/city/admin/index.js.map +0 -1
- package/bin/city/admin/types.d.ts.map +0 -1
- package/bin/city/admin/types.js.map +0 -1
- package/bin/city/city.d.ts +0 -73
- package/bin/city/city.d.ts.map +0 -1
- package/bin/city/city.js.map +0 -1
- package/bin/city/index.d.ts +0 -20
- package/bin/city/index.d.ts.map +0 -1
- package/bin/city/index.js +0 -14
- package/bin/city/index.js.map +0 -1
- package/bin/city/invoker/ai/types.js +0 -9
- package/bin/city/invoker/ai/types.js.map +0 -1
- package/bin/city/invoker/balance/types.js.map +0 -1
- package/bin/city/invoker/env/types.js +0 -5
- package/bin/city/invoker/env/types.js.map +0 -1
- package/bin/city/invoker/payment/types.js.map +0 -1
- package/bin/city/invoker/towns/index.d.ts +0 -46
- package/bin/city/invoker/towns/index.d.ts.map +0 -1
- package/bin/city/invoker/towns/index.js.map +0 -1
- package/bin/city/invoker/towns/types.d.ts +0 -46
- package/bin/city/invoker/towns/types.d.ts.map +0 -1
- package/bin/city/invoker/towns/types.js +0 -5
- package/bin/city/invoker/towns/types.js.map +0 -1
- package/bin/city/types/city.d.ts +0 -71
- package/bin/city/types/city.d.ts.map +0 -1
- package/bin/city/types/city.js +0 -8
- package/bin/city/types/city.js.map +0 -1
- package/bin/core/auth/authenticator.d.ts.map +0 -1
- package/bin/core/auth/authenticator.js.map +0 -1
- package/bin/core/auth/token-signer.d.ts.map +0 -1
- package/bin/core/auth/token-signer.js.map +0 -1
- package/bin/core/auth/types.d.ts.map +0 -1
- package/bin/core/auth/types.js.map +0 -1
- package/bin/core/base/base-env-catalog.d.ts +0 -13
- package/bin/core/base/base-env-catalog.d.ts.map +0 -1
- package/bin/core/base/base-env-catalog.js.map +0 -1
- package/bin/core/base/base-init.d.ts.map +0 -1
- package/bin/core/base/base-init.js.map +0 -1
- package/bin/core/base/base-instruction.d.ts +0 -11
- package/bin/core/base/base-instruction.d.ts.map +0 -1
- package/bin/core/base/base-instruction.js.map +0 -1
- package/bin/core/base/base-router.d.ts.map +0 -1
- package/bin/core/base/base-router.js.map +0 -1
- package/bin/core/base/base-runtime.d.ts.map +0 -1
- package/bin/core/base/base-runtime.js.map +0 -1
- package/bin/core/base/base.d.ts.map +0 -1
- package/bin/core/base/base.js.map +0 -1
- package/bin/core/runtime.d.ts.map +0 -1
- package/bin/core/runtime.js +0 -13
- package/bin/core/runtime.js.map +0 -1
- package/bin/core/types.d.ts.map +0 -1
- package/bin/service/towns/schema.d.ts.map +0 -1
- package/bin/service/towns/schema.js +0 -60
- package/bin/service/towns/schema.js.map +0 -1
- package/bin/service/towns/town-store.d.ts +0 -17
- package/bin/service/towns/town-store.d.ts.map +0 -1
- package/bin/service/towns/town-store.js.map +0 -1
- package/bin/service/towns/towns-service.d.ts +0 -15
- package/bin/service/towns/towns-service.d.ts.map +0 -1
- package/bin/service/towns/towns-service.js.map +0 -1
- package/bin/service/towns/types.d.ts +0 -51
- package/bin/service/towns/types.d.ts.map +0 -1
- package/bin/service/towns/types.js +0 -7
- package/bin/service/towns/types.js.map +0 -1
- /package/bin/{core → federation}/auth/token-signer.d.ts +0 -0
- /package/bin/{core → federation}/auth/types.js +0 -0
- /package/bin/{core → federation}/types.js +0 -0
- /package/bin/{city → pact}/admin/types.js +0 -0
- /package/bin/{city → pact}/http.d.ts +0 -0
- /package/bin/{city → pact}/http.js +0 -0
- /package/bin/{city → pact}/invoker/balance/index.d.ts +0 -0
- /package/bin/{city → pact}/invoker/balance/index.js +0 -0
- /package/bin/{city → pact}/invoker/balance/types.d.ts +0 -0
- /package/bin/{city → pact}/invoker/balance/types.js +0 -0
- /package/bin/{city → pact}/invoker/payment/types.js +0 -0
- /package/bin/{city → pact}/user/types.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Federation 主模块。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Federation 是城市基础设施运行容器,负责协调:
|
|
5
5
|
* - service 注册
|
|
6
6
|
* - runtime 初始化
|
|
7
7
|
* - 鉴权器访问
|
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
* 具体初始化、路由构建、instruction 聚合等实现已拆到独立模块。
|
|
11
11
|
*/
|
|
12
12
|
import type { Hono } from "hono";
|
|
13
|
-
import { Service } from "
|
|
14
|
-
import { type ServiceDefinition } from "
|
|
15
|
-
import type {
|
|
16
|
-
import type { Authenticator } from "
|
|
17
|
-
import type { CityTableApi } from "
|
|
18
|
-
export declare class
|
|
13
|
+
import { Service } from "../service/service.js";
|
|
14
|
+
import { type ServiceDefinition } from "../service/installable-service.js";
|
|
15
|
+
import type { FederationOptions, FederationHealthStatus, FederationHandleRequestOptions } from "./types.js";
|
|
16
|
+
import type { Authenticator } from "./auth/authenticator.js";
|
|
17
|
+
import type { CityTableApi } from "../store/table-api.js";
|
|
18
|
+
export declare class Federation {
|
|
19
19
|
private readonly runtime;
|
|
20
20
|
private readonly services;
|
|
21
21
|
private database?;
|
|
@@ -24,8 +24,8 @@ export declare class CityBase {
|
|
|
24
24
|
private init_promise?;
|
|
25
25
|
private hono?;
|
|
26
26
|
private authenticator?;
|
|
27
|
-
private
|
|
28
|
-
constructor(options:
|
|
27
|
+
private city_store?;
|
|
28
|
+
constructor(options: FederationOptions);
|
|
29
29
|
/**
|
|
30
30
|
* 注册 service。
|
|
31
31
|
*/
|
|
@@ -53,17 +53,17 @@ export declare class CityBase {
|
|
|
53
53
|
/**
|
|
54
54
|
* 处理 HTTP 请求。
|
|
55
55
|
*/
|
|
56
|
-
handleRequest(request: Request, options?:
|
|
56
|
+
handleRequest(request: Request, options?: FederationHandleRequestOptions): Promise<Response>;
|
|
57
57
|
/**
|
|
58
58
|
* 健康检查。
|
|
59
59
|
*/
|
|
60
|
-
health(): Promise<
|
|
60
|
+
health(): Promise<FederationHealthStatus>;
|
|
61
61
|
/**
|
|
62
62
|
* 聚合 instruction 文档。
|
|
63
63
|
*/
|
|
64
64
|
instruction(): Promise<string>;
|
|
65
65
|
/**
|
|
66
|
-
* 执行
|
|
66
|
+
* 执行 Federation 初始化。
|
|
67
67
|
*/
|
|
68
68
|
private initialize;
|
|
69
69
|
/**
|
|
@@ -75,8 +75,8 @@ export declare class CityBase {
|
|
|
75
75
|
*/
|
|
76
76
|
private require_ready_sync;
|
|
77
77
|
/**
|
|
78
|
-
* 给 Authenticator 延迟访问
|
|
78
|
+
* 给 Authenticator 延迟访问 city store。
|
|
79
79
|
*/
|
|
80
80
|
private require_ready;
|
|
81
81
|
}
|
|
82
|
-
//# sourceMappingURL=
|
|
82
|
+
//# sourceMappingURL=federation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/federation/federation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAA4C,MAAM,MAAM,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAOjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IAEvD,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAwB;IACvC,OAAO,CAAC,SAAS,CAAC,CAA4B;IAC9C,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,OAAO,CAAC,IAAI,CAAC,CAAO;IACpB,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAC,CAAY;gBAEnB,OAAO,EAAE,iBAAiB;IAMtC;;OAEG;IACH,GAAG,CAAC,aAAa,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI;IAQrD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IAIxB;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAKhD;;OAEG;IACG,KAAK,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxE,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAO9B;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,8BAAmC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKtG;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAY/C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAKpC;;OAEG;YACW,UAAU;IAoBxB;;OAEG;YACW,YAAY;IAO1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;YACW,aAAa;CAQ5B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Federation 主模块。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Federation 是城市基础设施运行容器,负责协调:
|
|
5
5
|
* - service 注册
|
|
6
6
|
* - runtime 初始化
|
|
7
7
|
* - 鉴权器访问
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
*
|
|
10
10
|
* 具体初始化、路由构建、instruction 聚合等实现已拆到独立模块。
|
|
11
11
|
*/
|
|
12
|
-
import { asInstallableService } from "
|
|
13
|
-
import { EnvService } from "
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
export class
|
|
12
|
+
import { asInstallableService } from "../service/installable-service.js";
|
|
13
|
+
import { EnvService } from "../service/env/env-service.js";
|
|
14
|
+
import { CitiesService } from "../service/cities/cities-service.js";
|
|
15
|
+
import { build_federation_instruction } from "./federation-instruction.js";
|
|
16
|
+
import { initialize_federation } from "./federation-init.js";
|
|
17
|
+
import { build_federation_router } from "./federation-router.js";
|
|
18
|
+
import { create_federation_runtime } from "./federation-runtime.js";
|
|
19
|
+
export class Federation {
|
|
20
20
|
runtime;
|
|
21
21
|
services = new Map();
|
|
22
22
|
database;
|
|
@@ -25,11 +25,11 @@ export class CityBase {
|
|
|
25
25
|
init_promise;
|
|
26
26
|
hono;
|
|
27
27
|
authenticator;
|
|
28
|
-
|
|
28
|
+
city_store;
|
|
29
29
|
constructor(options) {
|
|
30
|
-
this.runtime =
|
|
30
|
+
this.runtime = create_federation_runtime(options);
|
|
31
31
|
this.use(new EnvService());
|
|
32
|
-
this.use(new
|
|
32
|
+
this.use(new CitiesService());
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* 注册 service。
|
|
@@ -103,13 +103,13 @@ export class CityBase {
|
|
|
103
103
|
*/
|
|
104
104
|
async instruction() {
|
|
105
105
|
await this.ensure_ready();
|
|
106
|
-
return
|
|
106
|
+
return build_federation_instruction(this.getServices());
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
109
|
-
* 执行
|
|
109
|
+
* 执行 Federation 初始化。
|
|
110
110
|
*/
|
|
111
111
|
async initialize() {
|
|
112
|
-
const state = await
|
|
112
|
+
const state = await initialize_federation({
|
|
113
113
|
runtime: this.runtime,
|
|
114
114
|
services: this.getServices(),
|
|
115
115
|
require_ready: () => this.require_ready(),
|
|
@@ -117,9 +117,9 @@ export class CityBase {
|
|
|
117
117
|
this.database = state.database;
|
|
118
118
|
this.client = state.client;
|
|
119
119
|
this.table_map = state.table_map;
|
|
120
|
-
this.
|
|
120
|
+
this.city_store = state.city_store;
|
|
121
121
|
this.authenticator = state.authenticator;
|
|
122
|
-
this.hono =
|
|
122
|
+
this.hono = build_federation_router({
|
|
123
123
|
runtime: this.runtime,
|
|
124
124
|
services: this.getServices(),
|
|
125
125
|
authenticator: state.authenticator,
|
|
@@ -140,17 +140,17 @@ export class CityBase {
|
|
|
140
140
|
*/
|
|
141
141
|
require_ready_sync() {
|
|
142
142
|
if (!this.hono) {
|
|
143
|
-
throw new Error("
|
|
143
|
+
throw new Error("Federation init has not completed yet");
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
/**
|
|
147
|
-
* 给 Authenticator 延迟访问
|
|
147
|
+
* 给 Authenticator 延迟访问 city store。
|
|
148
148
|
*/
|
|
149
149
|
async require_ready() {
|
|
150
150
|
await this.ensure_ready();
|
|
151
151
|
return {
|
|
152
|
-
|
|
152
|
+
city: this.city_store ?? { get: () => Promise.resolve(undefined) },
|
|
153
153
|
};
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
//# sourceMappingURL=
|
|
156
|
+
//# sourceMappingURL=federation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/federation/federation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Runtime 能力接口模块。
|
|
3
3
|
*
|
|
4
|
-
* 定义
|
|
4
|
+
* 定义 Federation 内部依赖的能力集合。用户侧只需要传入 Drizzle db,
|
|
5
5
|
* City 会从 db 组装这些能力。
|
|
6
6
|
*
|
|
7
7
|
* 使用示例:
|
|
8
8
|
* ```ts
|
|
9
|
-
* const base = new
|
|
9
|
+
* const base = new Federation({ db });
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
12
|
import type { Database, DbClient } from "../store/db.js";
|
|
@@ -61,27 +61,27 @@ export interface EnvProvider {
|
|
|
61
61
|
/**
|
|
62
62
|
* 关联数据库存储。
|
|
63
63
|
*
|
|
64
|
-
*
|
|
65
|
-
* 默认 env provider 会把
|
|
64
|
+
* Federation 初始化内置 env 表后调用。
|
|
65
|
+
* 默认 env provider 会把 Federation env 表作为唯一业务 env 来源。
|
|
66
66
|
*/
|
|
67
67
|
attachStore(store: EnvStore): Promise<void>;
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* Federation 内置表定义。
|
|
71
71
|
*
|
|
72
|
-
* 包含
|
|
72
|
+
* 包含 cities 和 env 两个内置表。
|
|
73
73
|
* 适配器根据数据库类型(SQLite / Postgres)提供对应的表定义。
|
|
74
74
|
*/
|
|
75
75
|
export interface BuiltinTables {
|
|
76
76
|
/** 产品表 */
|
|
77
|
-
|
|
77
|
+
cities: TableDef;
|
|
78
78
|
/** 环境变量表 */
|
|
79
79
|
env: TableDef;
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
82
|
* 运行时能力接口。
|
|
83
83
|
*
|
|
84
|
-
* 这是
|
|
84
|
+
* 这是 Federation 内部从 Drizzle db 组装出来的结构,不作为用户主要入口。
|
|
85
85
|
*/
|
|
86
86
|
export interface Runtime {
|
|
87
87
|
/**
|
|
@@ -101,7 +101,7 @@ export interface Runtime {
|
|
|
101
101
|
*/
|
|
102
102
|
env: EnvProvider;
|
|
103
103
|
/**
|
|
104
|
-
*
|
|
104
|
+
* Federation 内置表定义(cities + env)。
|
|
105
105
|
*
|
|
106
106
|
* 适配器根据数据库类型提供正确的 Drizzle 表定义。
|
|
107
107
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/federation/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,+BAA+B;AAC/B,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC;AAMnD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAErC;;;;;;OAMG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,IAAI,IAAI,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEzC;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjD;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1C;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAMD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU;IACV,MAAM,EAAE,QAAQ,CAAC;IACjB,YAAY;IACZ,GAAG,EAAE,QAAQ,CAAC;CACf;AAMD;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB;;;;OAIG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC;IAEjB;;;;OAIG;IACH,GAAG,EAAE,WAAW,CAAC;IAEjB;;;;OAIG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/federation/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -7,7 +7,7 @@ import type { Database } from "../store/db.js";
|
|
|
7
7
|
/**
|
|
8
8
|
* 单次请求的运行时执行上下文。
|
|
9
9
|
*/
|
|
10
|
-
export interface
|
|
10
|
+
export interface FederationRequestExecutionContext {
|
|
11
11
|
/**
|
|
12
12
|
* 延长后台任务生命周期。
|
|
13
13
|
*
|
|
@@ -16,16 +16,16 @@ export interface CityRequestExecutionContext {
|
|
|
16
16
|
waitUntil(promise: Promise<unknown>): void;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Federation.handleRequest 的可选参数。
|
|
20
20
|
*/
|
|
21
|
-
export interface
|
|
21
|
+
export interface FederationHandleRequestOptions {
|
|
22
22
|
/** 单次请求的运行时执行上下文。 */
|
|
23
|
-
execution?:
|
|
23
|
+
execution?: FederationRequestExecutionContext;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* City 健康检查结果。
|
|
27
27
|
*/
|
|
28
|
-
export interface
|
|
28
|
+
export interface FederationHealthStatus {
|
|
29
29
|
/** 当前 Runtime 是否已经完成初始化并可处理请求 */
|
|
30
30
|
ok: boolean;
|
|
31
31
|
/** 服务名称,用于外部探测确认命中的服务类型 */
|
|
@@ -47,7 +47,7 @@ export interface CityBaseHealthStatus {
|
|
|
47
47
|
* - 只接收一个 Drizzle db 对象,City 自己从中推断方言和底层 client。
|
|
48
48
|
* - 不再需要传 `dialect`、`raw`、`runtime` 等冗余选项。
|
|
49
49
|
*/
|
|
50
|
-
export interface
|
|
50
|
+
export interface FederationOptions {
|
|
51
51
|
/**
|
|
52
52
|
* Drizzle database 对象。
|
|
53
53
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/federation/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,qBAAqB;IACrB,SAAS,CAAC,EAAE,iCAAiC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,yBAAyB;IACzB,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,EAAE,EAAE,QAAQ,GAAG;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/federation/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/bin/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @downcity/city 公共入口。
|
|
3
3
|
*
|
|
4
|
-
* City 包同时提供服务端
|
|
5
|
-
* - `
|
|
4
|
+
* City 包同时提供服务端 Federation 与客户端 City:
|
|
5
|
+
* - `Federation` 用来创建和部署城市服务端
|
|
6
6
|
* - `City` 用来以 user 或 admin 角色访问城市
|
|
7
7
|
*/
|
|
8
|
-
export {
|
|
9
|
-
export type {
|
|
10
|
-
export type {
|
|
11
|
-
export type { Runtime, EnvProvider, BuiltinTables, TableDef } from "./
|
|
8
|
+
export { Federation } from "./federation/federation.js";
|
|
9
|
+
export type { FederationOptions, FederationHealthStatus } from "./federation/types.js";
|
|
10
|
+
export type { FederationHandleRequestOptions, FederationRequestExecutionContext } from "./federation/types.js";
|
|
11
|
+
export type { Runtime, EnvProvider, BuiltinTables, TableDef } from "./federation/runtime.js";
|
|
12
12
|
export { Service } from "./service/service.js";
|
|
13
13
|
export { InstallableService } from "./service/installable-service.js";
|
|
14
14
|
export { Action } from "./service/action.js";
|
|
@@ -23,35 +23,32 @@ export type { AIServiceOptions, ModelConfig, ModelActions, OpenAICompatibleClien
|
|
|
23
23
|
export { buildAssistantMessage, buildImageMessage, buildToolSet, isRecord, normalizeAIUsage, normalizeOpenAICompatibleBody, readErrorMessage, readImageJobStepContext, readJsonResponse, readOpenAICompatibleSseUsage, readRequiredEnv, readString, resolveUpstreamModel, stripUndefined, toRecord, trimTrailingSlash, } from "./service/ai/helpers.js";
|
|
24
24
|
export type { BuildAssistantMessageResult, ExtractedImage, ToolCallShape, } from "./service/ai/helpers.js";
|
|
25
25
|
export type { AIBalanceBridge, AIBalanceChargeInput, AIProviderBillFn, AIProviderChargedOutput, AIProviderChargedResponse, AIProviderChargeLine, } from "./service/ai/charge.js";
|
|
26
|
-
export { TokenSigner } from "./
|
|
27
|
-
export type { RuntimeUser, CreateUserTokenInput, UserTokenPayload, UserTokenIssueResult, } from "./
|
|
26
|
+
export { TokenSigner } from "./federation/auth/token-signer.js";
|
|
27
|
+
export type { RuntimeUser, CreateUserTokenInput, UserTokenPayload, UserTokenIssueResult, } from "./federation/auth/types.js";
|
|
28
28
|
export { EnvService } from "./service/env/env-service.js";
|
|
29
29
|
export type { EnvEntry, EnvRefreshResult, EnvUpsertInput, EnvRequirementStatus, EnvCatalogScope, } from "./service/env/types.js";
|
|
30
30
|
export { EnvStore } from "./service/env/env-store.js";
|
|
31
|
-
export { TownsService } from "./service/towns/towns-service.js";
|
|
32
|
-
export type { Town, TownCreateInput, TownStatus } from "./service/towns/types.js";
|
|
33
31
|
export type { Database, DbClient } from "./store/db.js";
|
|
34
32
|
export { executeDDL } from "./store/db.js";
|
|
35
33
|
export type { CityTableApi } from "./store/table-api.js";
|
|
36
34
|
export type { CityUserSchemaInput } from "./store/types.js";
|
|
37
|
-
export type { FetchLike, FetchResponseLike, RawStreamBody, RequestInitLike, } from "./
|
|
35
|
+
export type { FetchLike, FetchResponseLike, RawStreamBody, RequestInitLike, } from "./pact/http.js";
|
|
38
36
|
export type { CityModel, CityModelDescriptor, CityModelEnvRequirement, } from "@downcity/type";
|
|
39
|
-
export { City } from "./
|
|
40
|
-
export type { AdminCityOptions,
|
|
41
|
-
export { AIInvoker, ModelCatalog, ModelHandle } from "./
|
|
42
|
-
export { PaymentInvoker, PaymentMethodHandle } from "./
|
|
43
|
-
export { ServiceClient, ActionClient } from "./
|
|
44
|
-
export type { UserPaymentMethod, UserPaymentMethodReason, UserPaymentMethodType, UserImageContent, UserImageFileContent, UserImageInput, UserImageJobCreateResult, UserImageJobResult, UserImageJobResultInput, UserImageJobStatus, UserImageMessage, UserImageResult, UserImageTextContent, UserServiceInput, UserServiceSummary, UserStreamChunk, UserStreamResult, UserTextResult, UserVideoResult, } from "./
|
|
37
|
+
export { City } from "./client/city.js";
|
|
38
|
+
export type { AdminCityOptions, CityBaseOptions, CityOptions, CityOptionsForRole, CityRole, UserCityOptions, } from "./client/types.js";
|
|
39
|
+
export { AIInvoker, ModelCatalog, ModelHandle } from "./pact/invoker/ai/index.js";
|
|
40
|
+
export { PaymentInvoker, PaymentMethodHandle } from "./pact/invoker/payment/index.js";
|
|
41
|
+
export { ServiceClient, ActionClient } from "./pact/invoker/invoker.js";
|
|
42
|
+
export type { UserPaymentMethod, UserPaymentMethodReason, UserPaymentMethodType, UserImageContent, UserImageFileContent, UserImageInput, UserImageJobCreateResult, UserImageJobResult, UserImageJobResultInput, UserImageJobStatus, UserImageMessage, UserImageResult, UserImageTextContent, UserServiceInput, UserServiceSummary, UserStreamChunk, UserStreamResult, UserTextResult, UserVideoResult, } from "./pact/user/types.js";
|
|
45
43
|
export type { AIImageJobStepContext, AIImageJobStepResult, AIImageJobStepState, } from "./service/ai/job-types.js";
|
|
46
|
-
export type { UserPaymentMethod as PaymentMethod, UserPaymentMethodReason as PaymentMethodReason, UserPaymentMethodType as PaymentMethodType, } from "./
|
|
47
|
-
export type { UserModelRef, UserModelInput, } from "./
|
|
48
|
-
export { BalanceInvoker, BalanceRedeemCodeInvoker } from "./
|
|
49
|
-
export {
|
|
50
|
-
export {
|
|
51
|
-
export type { AdminInstructionResult, AdminModelRecord, AdminServiceSummary, } from "./
|
|
52
|
-
export type { BalanceAccountRecord, BalanceHistoryListInput, BalanceLedgerRecord, BalanceMutationInput, BalanceRedeemCodeCreateInput, BalanceRedeemCodeDisableInput, BalanceRedeemCodeIssueResult, BalanceRedeemCodeListInput, BalanceRedeemCodeRecord, BalanceTopupListInput, BalanceTopupRecord, BalanceTopupUpdateInput, } from "./
|
|
53
|
-
export type { TokenApplyInput, TokenApplyResult, } from "./
|
|
54
|
-
export { sqliteTowns, pgTowns } from "./service/towns/schema.js";
|
|
44
|
+
export type { UserPaymentMethod as PaymentMethod, UserPaymentMethodReason as PaymentMethodReason, UserPaymentMethodType as PaymentMethodType, } from "./pact/invoker/payment/types.js";
|
|
45
|
+
export type { UserModelRef, UserModelInput, } from "./pact/invoker/ai/types.js";
|
|
46
|
+
export { BalanceInvoker, BalanceRedeemCodeInvoker } from "./pact/invoker/balance/index.js";
|
|
47
|
+
export { CitiesInvoker } from "./pact/invoker/cities/index.js";
|
|
48
|
+
export { EnvInvoker } from "./pact/invoker/env/index.js";
|
|
49
|
+
export type { AdminInstructionResult, AdminModelRecord, AdminServiceSummary, } from "./pact/admin/types.js";
|
|
50
|
+
export type { BalanceAccountRecord, BalanceHistoryListInput, BalanceLedgerRecord, BalanceMutationInput, BalanceRedeemCodeCreateInput, BalanceRedeemCodeDisableInput, BalanceRedeemCodeIssueResult, BalanceRedeemCodeListInput, BalanceRedeemCodeRecord, BalanceTopupListInput, BalanceTopupRecord, BalanceTopupUpdateInput, } from "./pact/invoker/balance/types.js";
|
|
51
|
+
export type { CityCreateInput, CityRecord, TokenApplyInput, TokenApplyResult, } from "./pact/invoker/cities/types.js";
|
|
55
52
|
export { sqliteEnv, pgEnv } from "./service/env/schema.js";
|
|
56
53
|
export { randomSecret, base64UrlEncode, base64UrlDecode, base64UrlEncodeBytes, base64UrlDecodeBytes, timingSafeEqualBytes, httpError, normalizeEnvKey, bearerToken, parseDotenvEntries, } from "./utils/helpers.js";
|
|
57
54
|
//# sourceMappingURL=index.d.ts.map
|
package/bin/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/bin/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @downcity/city 公共入口。
|
|
3
3
|
*
|
|
4
|
-
* City 包同时提供服务端
|
|
5
|
-
* - `
|
|
4
|
+
* City 包同时提供服务端 Federation 与客户端 City:
|
|
5
|
+
* - `Federation` 用来创建和部署城市服务端
|
|
6
6
|
* - `City` 用来以 user 或 admin 角色访问城市
|
|
7
7
|
*/
|
|
8
8
|
// ===========================================================================
|
|
9
|
-
// 场景 1:创建
|
|
9
|
+
// 场景 1:创建 Federation 实例
|
|
10
10
|
// ===========================================================================
|
|
11
|
-
export {
|
|
11
|
+
export { Federation } from "./federation/federation.js";
|
|
12
12
|
// ===========================================================================
|
|
13
13
|
// 场景 2:注册 Service / InstallableService / AI 模型
|
|
14
14
|
// ===========================================================================
|
|
@@ -21,25 +21,23 @@ export { buildAssistantMessage, buildImageMessage, buildToolSet, isRecord, norma
|
|
|
21
21
|
// ===========================================================================
|
|
22
22
|
// 场景 3:用户鉴权与 Token
|
|
23
23
|
// ===========================================================================
|
|
24
|
-
export { TokenSigner } from "./
|
|
24
|
+
export { TokenSigner } from "./federation/auth/token-signer.js";
|
|
25
25
|
// ===========================================================================
|
|
26
|
-
// 场景 4
|
|
26
|
+
// 场景 4:管理环境变量(内置 Service)
|
|
27
27
|
// ===========================================================================
|
|
28
28
|
export { EnvService } from "./service/env/env-service.js";
|
|
29
29
|
export { EnvStore } from "./service/env/env-store.js";
|
|
30
|
-
export { TownsService } from "./service/towns/towns-service.js";
|
|
31
30
|
export { executeDDL } from "./store/db.js";
|
|
32
|
-
export { City } from "./
|
|
33
|
-
export { AIInvoker, ModelCatalog, ModelHandle } from "./
|
|
34
|
-
export { PaymentInvoker, PaymentMethodHandle } from "./
|
|
35
|
-
export { ServiceClient, ActionClient } from "./
|
|
36
|
-
export { BalanceInvoker, BalanceRedeemCodeInvoker } from "./
|
|
37
|
-
export {
|
|
38
|
-
export {
|
|
31
|
+
export { City } from "./client/city.js";
|
|
32
|
+
export { AIInvoker, ModelCatalog, ModelHandle } from "./pact/invoker/ai/index.js";
|
|
33
|
+
export { PaymentInvoker, PaymentMethodHandle } from "./pact/invoker/payment/index.js";
|
|
34
|
+
export { ServiceClient, ActionClient } from "./pact/invoker/invoker.js";
|
|
35
|
+
export { BalanceInvoker, BalanceRedeemCodeInvoker } from "./pact/invoker/balance/index.js";
|
|
36
|
+
export { CitiesInvoker } from "./pact/invoker/cities/index.js";
|
|
37
|
+
export { EnvInvoker } from "./pact/invoker/env/index.js";
|
|
39
38
|
// ===========================================================================
|
|
40
39
|
// 场景 7:内置表 Schema
|
|
41
40
|
// ===========================================================================
|
|
42
|
-
export { sqliteTowns, pgTowns } from "./service/towns/schema.js";
|
|
43
41
|
export { sqliteEnv, pgEnv } from "./service/env/schema.js";
|
|
44
42
|
// ===========================================================================
|
|
45
43
|
// 场景 8:工具函数
|
package/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA8B7C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAYpD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,6BAA6B,EAC7B,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,4BAA4B,EAC5B,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAiBjC,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAShE,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAQ1D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAOtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAqB3C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAUxC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAyCxE,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AA8BzD,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAE3D,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,WAAW,EACX,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
|
|
@@ -4,26 +4,42 @@
|
|
|
4
4
|
import { ServiceClient } from "../invoker/invoker.js";
|
|
5
5
|
import { BalanceInvoker } from "../invoker/balance/index.js";
|
|
6
6
|
import { EnvInvoker } from "../invoker/env/index.js";
|
|
7
|
-
import {
|
|
8
|
-
import type {
|
|
9
|
-
export declare class
|
|
7
|
+
import { CitiesInvoker } from "../invoker/cities/index.js";
|
|
8
|
+
import type { AdminPactAccessOptions, AdminModelRecord, AdminServiceSummary } from "./types.js";
|
|
9
|
+
export declare class AdminPactAccess {
|
|
10
10
|
readonly balance: BalanceInvoker;
|
|
11
|
+
readonly cities: CitiesInvoker;
|
|
11
12
|
readonly env: EnvInvoker;
|
|
12
|
-
readonly towns: TownsInvoker;
|
|
13
13
|
private readonly base_url;
|
|
14
|
+
readonly city_id: string;
|
|
14
15
|
private readonly secret;
|
|
15
16
|
private readonly fetchImpl;
|
|
16
|
-
constructor(options:
|
|
17
|
+
constructor(options: AdminPactAccessOptions);
|
|
17
18
|
/** 获取 Service 调用器(与 User City 共用同一路由) */
|
|
18
19
|
service(name: string): ServiceClient;
|
|
19
|
-
/** 列出当前
|
|
20
|
+
/** 列出当前 Federation 暴露的 service 摘要。 */
|
|
20
21
|
listServices(): Promise<AdminServiceSummary[]>;
|
|
21
|
-
/** 列出当前
|
|
22
|
+
/** 列出当前 Federation 注册的模型目录(admin 身份可见额外状态字段)。 */
|
|
22
23
|
listModels(): Promise<AdminModelRecord[]>;
|
|
23
24
|
/** 读取 City 聚合后的说明文档。 */
|
|
24
25
|
instruction(): Promise<string>;
|
|
25
26
|
private json;
|
|
26
27
|
private text;
|
|
28
|
+
/**
|
|
29
|
+
* 为当前 City 签发 user token。
|
|
30
|
+
*
|
|
31
|
+
* 不需要传 city_id,构造时传入的 city_id 会自动注入。
|
|
32
|
+
*/
|
|
33
|
+
applyToken(input: {
|
|
34
|
+
user_id: string;
|
|
35
|
+
metadata?: Record<string, unknown>;
|
|
36
|
+
ttl?: string | number;
|
|
37
|
+
}): Promise<{
|
|
38
|
+
user_token: string;
|
|
39
|
+
city_id: string;
|
|
40
|
+
user_id: string;
|
|
41
|
+
expires_at?: string;
|
|
42
|
+
}>;
|
|
27
43
|
/**
|
|
28
44
|
* 为管理端请求统一补齐鉴权头。
|
|
29
45
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pact/admin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAU3D,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,qBAAa,eAAe;IAC1B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,OAAO,EAAE,sBAAsB;IAmB3C,yCAAyC;IACzC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAUpC,sCAAsC;IAChC,YAAY,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAOpD,iDAAiD;IAC3C,UAAU,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAO/C,wBAAwB;IAClB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAIpC,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,IAAI;IASZ;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAO1F;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;CAUjB"}
|
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
import { ServiceClient } from "../invoker/invoker.js";
|
|
5
5
|
import { BalanceInvoker } from "../invoker/balance/index.js";
|
|
6
6
|
import { EnvInvoker } from "../invoker/env/index.js";
|
|
7
|
-
import {
|
|
7
|
+
import { CitiesInvoker } from "../invoker/cities/index.js";
|
|
8
8
|
import { defaultFetch, normalizeBaseURL, requestJSON, requestText, requiredString, } from "../http.js";
|
|
9
|
-
export class
|
|
9
|
+
export class AdminPactAccess {
|
|
10
10
|
balance;
|
|
11
|
+
cities;
|
|
11
12
|
env;
|
|
12
|
-
towns;
|
|
13
13
|
base_url;
|
|
14
|
+
city_id;
|
|
14
15
|
secret;
|
|
15
16
|
fetchImpl;
|
|
16
17
|
constructor(options) {
|
|
@@ -18,12 +19,13 @@ export class AdminCityAccess {
|
|
|
18
19
|
throw new TypeError("Admin City options are required");
|
|
19
20
|
}
|
|
20
21
|
this.base_url = normalizeBaseURL(options.base_url, "base_url");
|
|
21
|
-
this.
|
|
22
|
+
this.city_id = requiredString(options.city_id, "city_id");
|
|
23
|
+
this.secret = requiredString(options.admin_secret_key ?? process.env.DOWNCITY_FEDERATION_ADMIN_SECRET_KEY, "admin_secret_key");
|
|
22
24
|
this.fetchImpl = options.fetch ?? defaultFetch();
|
|
23
25
|
const req = (path, init) => this.json(path, init);
|
|
24
26
|
this.balance = new BalanceInvoker({ requestJSON: req });
|
|
27
|
+
this.cities = new CitiesInvoker({ requestJSON: req });
|
|
25
28
|
this.env = new EnvInvoker({ requestJSON: req });
|
|
26
|
-
this.towns = new TownsInvoker({ requestJSON: req });
|
|
27
29
|
}
|
|
28
30
|
/** 获取 Service 调用器(与 User City 共用同一路由) */
|
|
29
31
|
service(name) {
|
|
@@ -32,14 +34,14 @@ export class AdminCityAccess {
|
|
|
32
34
|
throw new TypeError("service name is required");
|
|
33
35
|
return new ServiceClient((path, init) => this.json(path, init), "/v1", id);
|
|
34
36
|
}
|
|
35
|
-
/** 列出当前
|
|
37
|
+
/** 列出当前 Federation 暴露的 service 摘要。 */
|
|
36
38
|
async listServices() {
|
|
37
39
|
const body = await this.json("/v1/services", {
|
|
38
40
|
method: "GET",
|
|
39
41
|
});
|
|
40
42
|
return body.items;
|
|
41
43
|
}
|
|
42
|
-
/** 列出当前
|
|
44
|
+
/** 列出当前 Federation 注册的模型目录(admin 身份可见额外状态字段)。 */
|
|
43
45
|
async listModels() {
|
|
44
46
|
const body = await this.json("/v1/ai/models", {
|
|
45
47
|
method: "GET",
|
|
@@ -48,7 +50,7 @@ export class AdminCityAccess {
|
|
|
48
50
|
}
|
|
49
51
|
/** 读取 City 聚合后的说明文档。 */
|
|
50
52
|
async instruction() {
|
|
51
|
-
return this.text("/v1/
|
|
53
|
+
return this.text("/v1/federation/instruction", { method: "GET" });
|
|
52
54
|
}
|
|
53
55
|
json(path, init) {
|
|
54
56
|
return requestJSON({
|
|
@@ -64,6 +66,17 @@ export class AdminCityAccess {
|
|
|
64
66
|
init: this.withAuth(init),
|
|
65
67
|
});
|
|
66
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* 为当前 City 签发 user token。
|
|
71
|
+
*
|
|
72
|
+
* 不需要传 city_id,构造时传入的 city_id 会自动注入。
|
|
73
|
+
*/
|
|
74
|
+
async applyToken(input) {
|
|
75
|
+
return this.json('/v1/cities/tokens/apply', {
|
|
76
|
+
method: 'POST',
|
|
77
|
+
body: JSON.stringify({ ...input, city_id: this.city_id }),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
67
80
|
/**
|
|
68
81
|
* 为管理端请求统一补齐鉴权头。
|
|
69
82
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pact/admin/index.ts"],"names":[],"mappings":"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"}
|