@downcity/city 0.2.82 → 0.2.92

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 (229) hide show
  1. package/README.md +10 -10
  2. package/bin/client/city.d.ts +90 -0
  3. package/bin/client/city.d.ts.map +1 -0
  4. package/bin/{city → client}/city.js +32 -22
  5. package/bin/client/city.js.map +1 -0
  6. package/bin/client/types.d.ts +77 -0
  7. package/bin/client/types.d.ts.map +1 -0
  8. package/bin/client/types.js +8 -0
  9. package/bin/{core → client}/types.js.map +1 -1
  10. package/bin/{core → federation}/auth/authenticator.d.ts +7 -7
  11. package/bin/federation/auth/authenticator.d.ts.map +1 -0
  12. package/bin/{core → federation}/auth/authenticator.js +15 -15
  13. package/bin/federation/auth/authenticator.js.map +1 -0
  14. package/bin/federation/auth/token-signer.d.ts.map +1 -0
  15. package/bin/{core → federation}/auth/token-signer.js +4 -4
  16. package/bin/federation/auth/token-signer.js.map +1 -0
  17. package/bin/{core → federation}/auth/types.d.ts +6 -6
  18. package/bin/federation/auth/types.d.ts.map +1 -0
  19. package/bin/federation/auth/types.js.map +1 -0
  20. package/bin/federation/federation-env-catalog.d.ts +13 -0
  21. package/bin/federation/federation-env-catalog.d.ts.map +1 -0
  22. package/bin/{core/base/base-env-catalog.js → federation/federation-env-catalog.js} +5 -5
  23. package/bin/federation/federation-env-catalog.js.map +1 -0
  24. package/bin/{core/base/base-init.d.ts → federation/federation-init.d.ts} +17 -17
  25. package/bin/federation/federation-init.d.ts.map +1 -0
  26. package/bin/{core/base/base-init.js → federation/federation-init.js} +27 -27
  27. package/bin/federation/federation-init.js.map +1 -0
  28. package/bin/federation/federation-instruction.d.ts +11 -0
  29. package/bin/federation/federation-instruction.d.ts.map +1 -0
  30. package/bin/{core/base/base-instruction.js → federation/federation-instruction.js} +4 -4
  31. package/bin/federation/federation-instruction.js.map +1 -0
  32. package/bin/{core/base/base-router.d.ts → federation/federation-router.d.ts} +11 -11
  33. package/bin/federation/federation-router.d.ts.map +1 -0
  34. package/bin/{core/base/base-router.js → federation/federation-router.js} +27 -27
  35. package/bin/federation/federation-router.js.map +1 -0
  36. package/bin/{core/base/base-runtime.d.ts → federation/federation-runtime.d.ts} +6 -6
  37. package/bin/federation/federation-runtime.d.ts.map +1 -0
  38. package/bin/{core/base/base-runtime.js → federation/federation-runtime.js} +10 -10
  39. package/bin/federation/federation-runtime.js.map +1 -0
  40. package/bin/{core/base/base.d.ts → federation/federation.d.ts} +15 -15
  41. package/bin/federation/federation.d.ts.map +1 -0
  42. package/bin/{core/base/base.js → federation/federation.js} +22 -22
  43. package/bin/federation/federation.js.map +1 -0
  44. package/bin/{core → federation}/runtime.d.ts +9 -9
  45. package/bin/federation/runtime.d.ts.map +1 -0
  46. package/bin/federation/runtime.js +13 -0
  47. package/bin/federation/runtime.js.map +1 -0
  48. package/bin/{core → federation}/types.d.ts +6 -6
  49. package/bin/federation/types.d.ts.map +1 -0
  50. package/bin/{city/user → federation}/types.js.map +1 -1
  51. package/bin/index.d.ts +23 -26
  52. package/bin/index.d.ts.map +1 -1
  53. package/bin/index.js +13 -15
  54. package/bin/index.js.map +1 -1
  55. package/bin/{city → pact}/admin/index.d.ts +23 -7
  56. package/bin/pact/admin/index.d.ts.map +1 -0
  57. package/bin/{city → pact}/admin/index.js +21 -8
  58. package/bin/pact/admin/index.js.map +1 -0
  59. package/bin/{city → pact}/admin/types.d.ts +7 -1
  60. package/bin/pact/admin/types.d.ts.map +1 -0
  61. package/bin/pact/admin/types.js.map +1 -0
  62. package/bin/{city → pact}/http.d.ts.map +1 -1
  63. package/bin/{city → pact}/http.js.map +1 -1
  64. package/bin/{city → pact}/invoker/ai/index.d.ts +1 -1
  65. package/bin/{city → pact}/invoker/ai/index.d.ts.map +1 -1
  66. package/bin/{city → pact}/invoker/ai/index.js +1 -1
  67. package/bin/{city → pact}/invoker/ai/index.js.map +1 -1
  68. package/bin/{city → pact}/invoker/ai/stream.d.ts +1 -1
  69. package/bin/{city → pact}/invoker/ai/stream.d.ts.map +1 -1
  70. package/bin/{city → pact}/invoker/ai/stream.js +1 -1
  71. package/bin/{city → pact}/invoker/ai/stream.js.map +1 -1
  72. package/bin/{city → pact}/invoker/ai/types.d.ts +2 -2
  73. package/bin/{city → pact}/invoker/ai/types.d.ts.map +1 -1
  74. package/bin/pact/invoker/ai/types.js +9 -0
  75. package/bin/pact/invoker/ai/types.js.map +1 -0
  76. package/bin/{city → pact}/invoker/balance/index.d.ts.map +1 -1
  77. package/bin/{city → pact}/invoker/balance/index.js.map +1 -1
  78. package/bin/{city → pact}/invoker/balance/types.d.ts.map +1 -1
  79. package/bin/pact/invoker/balance/types.js.map +1 -0
  80. package/bin/pact/invoker/cities/index.d.ts +46 -0
  81. package/bin/pact/invoker/cities/index.d.ts.map +1 -0
  82. package/bin/{city/invoker/towns → pact/invoker/cities}/index.js +16 -16
  83. package/bin/pact/invoker/cities/index.js.map +1 -0
  84. package/bin/pact/invoker/cities/types.d.ts +46 -0
  85. package/bin/pact/invoker/cities/types.d.ts.map +1 -0
  86. package/bin/pact/invoker/cities/types.js +5 -0
  87. package/bin/pact/invoker/cities/types.js.map +1 -0
  88. package/bin/{city → pact}/invoker/env/index.d.ts +2 -2
  89. package/bin/{city → pact}/invoker/env/index.d.ts.map +1 -1
  90. package/bin/{city → pact}/invoker/env/index.js +2 -2
  91. package/bin/{city → pact}/invoker/env/index.js.map +1 -1
  92. package/bin/{city → pact}/invoker/env/types.d.ts +2 -2
  93. package/bin/{city → pact}/invoker/env/types.d.ts.map +1 -1
  94. package/bin/pact/invoker/env/types.js +5 -0
  95. package/bin/pact/invoker/env/types.js.map +1 -0
  96. package/bin/{city → pact}/invoker/invoker.d.ts +9 -9
  97. package/bin/{city → pact}/invoker/invoker.d.ts.map +1 -1
  98. package/bin/{city → pact}/invoker/invoker.js +11 -11
  99. package/bin/{city → pact}/invoker/invoker.js.map +1 -1
  100. package/bin/{city → pact}/invoker/payment/index.d.ts +1 -1
  101. package/bin/{city → pact}/invoker/payment/index.d.ts.map +1 -1
  102. package/bin/{city → pact}/invoker/payment/index.js +1 -1
  103. package/bin/{city → pact}/invoker/payment/index.js.map +1 -1
  104. package/bin/{city → pact}/invoker/payment/types.d.ts +1 -1
  105. package/bin/{city → pact}/invoker/payment/types.d.ts.map +1 -1
  106. package/bin/pact/invoker/payment/types.js.map +1 -0
  107. package/bin/{city → pact}/user/index.d.ts +5 -5
  108. package/bin/{city → pact}/user/index.d.ts.map +1 -1
  109. package/bin/{city → pact}/user/index.js +9 -9
  110. package/bin/{city → pact}/user/index.js.map +1 -1
  111. package/bin/{city → pact}/user/types.d.ts +3 -3
  112. package/bin/{city → pact}/user/types.d.ts.map +1 -1
  113. package/bin/pact/user/types.js.map +1 -0
  114. package/bin/service/ai/ai-service.js +3 -3
  115. package/bin/service/ai/helpers.js +2 -2
  116. package/bin/service/ai/job-types.d.ts +8 -8
  117. package/bin/service/ai/job-types.d.ts.map +1 -1
  118. package/bin/service/ai/schema.d.ts +4 -4
  119. package/bin/service/ai/schema.js +6 -6
  120. package/bin/service/ai/schema.js.map +1 -1
  121. package/bin/service/cities/cities-service.d.ts +15 -0
  122. package/bin/service/cities/cities-service.d.ts.map +1 -0
  123. package/bin/service/{towns/towns-service.js → cities/cities-service.js} +17 -17
  124. package/bin/service/cities/cities-service.js.map +1 -0
  125. package/bin/service/cities/city-store.d.ts +17 -0
  126. package/bin/service/cities/city-store.d.ts.map +1 -0
  127. package/bin/service/{towns/town-store.js → cities/city-store.js} +17 -17
  128. package/bin/service/cities/city-store.js.map +1 -0
  129. package/bin/service/{towns → cities}/schema.d.ts +23 -23
  130. package/bin/service/cities/schema.d.ts.map +1 -0
  131. package/bin/service/cities/schema.js +60 -0
  132. package/bin/service/cities/schema.js.map +1 -0
  133. package/bin/service/cities/types.d.ts +51 -0
  134. package/bin/service/cities/types.d.ts.map +1 -0
  135. package/bin/service/cities/types.js +7 -0
  136. package/bin/service/cities/types.js.map +1 -0
  137. package/bin/service/env/env-service.d.ts +2 -2
  138. package/bin/service/env/env-service.js +3 -3
  139. package/bin/service/env/env-service.js.map +1 -1
  140. package/bin/service/env/types.d.ts +2 -2
  141. package/bin/service/env/types.js +1 -1
  142. package/bin/service/installable-service.d.ts +4 -4
  143. package/bin/service/installable-service.d.ts.map +1 -1
  144. package/bin/service/installable-service.js +1 -1
  145. package/bin/service/instruction.d.ts +2 -2
  146. package/bin/service/instruction.js +5 -5
  147. package/bin/service/instruction.js.map +1 -1
  148. package/bin/service/service.d.ts +9 -9
  149. package/bin/service/service.d.ts.map +1 -1
  150. package/bin/service/service.js +2 -2
  151. package/bin/service/service.js.map +1 -1
  152. package/package.json +3 -3
  153. package/bin/city/admin/index.d.ts.map +0 -1
  154. package/bin/city/admin/index.js.map +0 -1
  155. package/bin/city/admin/types.d.ts.map +0 -1
  156. package/bin/city/admin/types.js.map +0 -1
  157. package/bin/city/city.d.ts +0 -73
  158. package/bin/city/city.d.ts.map +0 -1
  159. package/bin/city/city.js.map +0 -1
  160. package/bin/city/index.d.ts +0 -20
  161. package/bin/city/index.d.ts.map +0 -1
  162. package/bin/city/index.js +0 -14
  163. package/bin/city/index.js.map +0 -1
  164. package/bin/city/invoker/ai/types.js +0 -9
  165. package/bin/city/invoker/ai/types.js.map +0 -1
  166. package/bin/city/invoker/balance/types.js.map +0 -1
  167. package/bin/city/invoker/env/types.js +0 -5
  168. package/bin/city/invoker/env/types.js.map +0 -1
  169. package/bin/city/invoker/payment/types.js.map +0 -1
  170. package/bin/city/invoker/towns/index.d.ts +0 -46
  171. package/bin/city/invoker/towns/index.d.ts.map +0 -1
  172. package/bin/city/invoker/towns/index.js.map +0 -1
  173. package/bin/city/invoker/towns/types.d.ts +0 -46
  174. package/bin/city/invoker/towns/types.d.ts.map +0 -1
  175. package/bin/city/invoker/towns/types.js +0 -5
  176. package/bin/city/invoker/towns/types.js.map +0 -1
  177. package/bin/city/types/city.d.ts +0 -71
  178. package/bin/city/types/city.d.ts.map +0 -1
  179. package/bin/city/types/city.js +0 -8
  180. package/bin/city/types/city.js.map +0 -1
  181. package/bin/core/auth/authenticator.d.ts.map +0 -1
  182. package/bin/core/auth/authenticator.js.map +0 -1
  183. package/bin/core/auth/token-signer.d.ts.map +0 -1
  184. package/bin/core/auth/token-signer.js.map +0 -1
  185. package/bin/core/auth/types.d.ts.map +0 -1
  186. package/bin/core/auth/types.js.map +0 -1
  187. package/bin/core/base/base-env-catalog.d.ts +0 -13
  188. package/bin/core/base/base-env-catalog.d.ts.map +0 -1
  189. package/bin/core/base/base-env-catalog.js.map +0 -1
  190. package/bin/core/base/base-init.d.ts.map +0 -1
  191. package/bin/core/base/base-init.js.map +0 -1
  192. package/bin/core/base/base-instruction.d.ts +0 -11
  193. package/bin/core/base/base-instruction.d.ts.map +0 -1
  194. package/bin/core/base/base-instruction.js.map +0 -1
  195. package/bin/core/base/base-router.d.ts.map +0 -1
  196. package/bin/core/base/base-router.js.map +0 -1
  197. package/bin/core/base/base-runtime.d.ts.map +0 -1
  198. package/bin/core/base/base-runtime.js.map +0 -1
  199. package/bin/core/base/base.d.ts.map +0 -1
  200. package/bin/core/base/base.js.map +0 -1
  201. package/bin/core/runtime.d.ts.map +0 -1
  202. package/bin/core/runtime.js +0 -13
  203. package/bin/core/runtime.js.map +0 -1
  204. package/bin/core/types.d.ts.map +0 -1
  205. package/bin/service/towns/schema.d.ts.map +0 -1
  206. package/bin/service/towns/schema.js +0 -60
  207. package/bin/service/towns/schema.js.map +0 -1
  208. package/bin/service/towns/town-store.d.ts +0 -17
  209. package/bin/service/towns/town-store.d.ts.map +0 -1
  210. package/bin/service/towns/town-store.js.map +0 -1
  211. package/bin/service/towns/towns-service.d.ts +0 -15
  212. package/bin/service/towns/towns-service.d.ts.map +0 -1
  213. package/bin/service/towns/towns-service.js.map +0 -1
  214. package/bin/service/towns/types.d.ts +0 -51
  215. package/bin/service/towns/types.d.ts.map +0 -1
  216. package/bin/service/towns/types.js +0 -7
  217. package/bin/service/towns/types.js.map +0 -1
  218. /package/bin/{core → federation}/auth/token-signer.d.ts +0 -0
  219. /package/bin/{core → federation}/auth/types.js +0 -0
  220. /package/bin/{core → federation}/types.js +0 -0
  221. /package/bin/{city → pact}/admin/types.js +0 -0
  222. /package/bin/{city → pact}/http.d.ts +0 -0
  223. /package/bin/{city → pact}/http.js +0 -0
  224. /package/bin/{city → pact}/invoker/balance/index.d.ts +0 -0
  225. /package/bin/{city → pact}/invoker/balance/index.js +0 -0
  226. /package/bin/{city → pact}/invoker/balance/types.d.ts +0 -0
  227. /package/bin/{city → pact}/invoker/balance/types.js +0 -0
  228. /package/bin/{city → pact}/invoker/payment/types.js +0 -0
  229. /package/bin/{city → pact}/user/types.js +0 -0
@@ -1,13 +1,13 @@
1
1
  /**
2
- * City env requirement 聚合模块。
2
+ * Federation env requirement 聚合模块。
3
3
  *
4
4
  * 负责把 service.env 与 AI 模型 env requirement 汇总成统一目录。
5
5
  */
6
- import { AIService } from "../../service/ai/ai-service.js";
6
+ import { AIService } from "../service/ai/ai-service.js";
7
7
  /**
8
- * 聚合当前 City 暴露的 env requirement。
8
+ * 聚合当前 Federation 暴露的 env requirement。
9
9
  */
10
- export function collect_city_env_catalog(services, env_provider) {
10
+ export function collect_federation_env_catalog(services, env_provider) {
11
11
  const scopes = [];
12
12
  for (const service of services) {
13
13
  if ((service.env?.length ?? 0) === 0)
@@ -82,4 +82,4 @@ function preview_env_value(value) {
82
82
  return value;
83
83
  return `${value.slice(0, 6)}...${value.slice(-4)}`;
84
84
  }
85
- //# sourceMappingURL=base-env-catalog.js.map
85
+ //# sourceMappingURL=federation-env-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-env-catalog.js","sourceRoot":"","sources":["../../src/federation/federation-env-catalog.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  /**
2
- * City 初始化模块。
2
+ * Federation 初始化模块。
3
3
  *
4
4
  * 负责组装表、执行建表、挂载 env store、初始化 authenticator,
5
5
  * 并把 runtime 依赖注入到各个 service。
6
6
  */
7
- import { type CityTableApi } from "../../store/table-api.js";
8
- import { TownStore } from "../../service/towns/town-store.js";
9
- import { Authenticator } from "../auth/authenticator.js";
10
- import type { Service } from "../../service/service.js";
11
- import type { Runtime } from "../runtime.js";
12
- import type { Database, DbClient } from "../../store/db.js";
7
+ import { type CityTableApi } from "../store/table-api.js";
8
+ import { CityStore } from "../service/cities/city-store.js";
9
+ import { Authenticator } from "./auth/authenticator.js";
10
+ import type { Service } from "../service/service.js";
11
+ import type { Runtime } from "./runtime.js";
12
+ import type { Database, DbClient } from "../store/db.js";
13
13
  /**
14
- * City 初始化后的内部状态。
14
+ * Federation 初始化后的内部状态。
15
15
  */
16
- export interface CityInitState {
16
+ export interface FederationInitState {
17
17
  /** 初始化后的 database */
18
18
  database: Database;
19
19
  /** 初始化后的底层 client */
@@ -22,27 +22,27 @@ export interface CityInitState {
22
22
  };
23
23
  /** 所有表 API 映射 */
24
24
  table_map: Map<string, CityTableApi>;
25
- /** town store */
26
- town_store: TownStore;
25
+ /** city store */
26
+ city_store: CityStore;
27
27
  /** 鉴权器 */
28
28
  authenticator: Authenticator;
29
29
  }
30
30
  /**
31
- * 执行 City 初始化。
31
+ * 执行 Federation 初始化。
32
32
  */
33
- export declare function initialize_city(params: {
33
+ export declare function initialize_federation(params: {
34
34
  /** runtime 能力 */
35
35
  runtime: Runtime;
36
36
  /** 已注册服务 */
37
37
  services: Service[];
38
38
  /** City ready 回调 */
39
39
  require_ready: () => Promise<{
40
- town: {
40
+ city: {
41
41
  get(id: string): Promise<{
42
- town_id: string;
42
+ city_id: string;
43
43
  status: string;
44
44
  } | undefined>;
45
45
  };
46
46
  }>;
47
- }): Promise<CityInitState>;
48
- //# sourceMappingURL=base-init.d.ts.map
47
+ }): Promise<FederationInitState>;
48
+ //# sourceMappingURL=federation-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-init.d.ts","sourceRoot":"","sources":["../../src/federation/federation-init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE7F,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,qBAAqB;IACrB,MAAM,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC;IAC9B,iBAAiB;IACjB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,iBAAiB;IACjB,UAAU,EAAE,SAAS,CAAC;IACtB,UAAU;IACV,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,iBAAiB;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY;IACZ,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,oBAAoB;IACpB,aAAa,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE;YAAE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,GAAG,SAAS,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CACvH,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuD/B"}
@@ -1,24 +1,24 @@
1
1
  /**
2
- * City 初始化模块。
2
+ * Federation 初始化模块。
3
3
  *
4
4
  * 负责组装表、执行建表、挂载 env store、初始化 authenticator,
5
5
  * 并把 runtime 依赖注入到各个 service。
6
6
  */
7
- import { executeDDL } from "../../store/db.js";
8
- import { TableApi, buildCreateUserTableSQL } from "../../store/table-api.js";
9
- import { EnvStore } from "../../service/env/env-store.js";
10
- import { TownStore } from "../../service/towns/town-store.js";
11
- import { Authenticator } from "../auth/authenticator.js";
12
- import { randomSecret } from "../../utils/helpers.js";
7
+ import { executeDDL } from "../store/db.js";
8
+ import { TableApi, buildCreateUserTableSQL } from "../store/table-api.js";
9
+ import { EnvStore } from "../service/env/env-store.js";
10
+ import { CityStore } from "../service/cities/city-store.js";
11
+ import { Authenticator } from "./auth/authenticator.js";
12
+ import { randomSecret } from "../utils/helpers.js";
13
13
  /**
14
- * 执行 City 初始化。
14
+ * 执行 Federation 初始化。
15
15
  */
16
- export async function initialize_city(params) {
16
+ export async function initialize_federation(params) {
17
17
  const { runtime, services, require_ready } = params;
18
18
  const { database, client, env, builtinTables } = runtime;
19
19
  const user_schema = collect_service_schemas(services);
20
20
  const table_map = new Map();
21
- table_map.set("towns", new TableApi(database, builtinTables.towns));
21
+ table_map.set("cities", new TableApi(database, builtinTables.cities));
22
22
  table_map.set("env", new TableApi(database, builtinTables.env));
23
23
  for (const [name, table] of Object.entries(user_schema)) {
24
24
  table_map.set(name, new TableApi(database, table));
@@ -31,14 +31,14 @@ export async function initialize_city(params) {
31
31
  }
32
32
  const env_table = table_map.get("env");
33
33
  if (!env_table)
34
- throw new Error("City env table is not initialized");
34
+ throw new Error("Federation env table is not initialized");
35
35
  const env_store = new EnvStore(env_table);
36
36
  await env.attachStore(env_store);
37
- const towns_table = table_map.get("towns");
38
- if (!towns_table)
39
- throw new Error("City towns table is not initialized");
40
- const town_store = new TownStore(towns_table);
41
- const configured_base_url = env.get("DOWNCITY_CITY_BASE_URL")
37
+ const cities_table = table_map.get("cities");
38
+ if (!cities_table)
39
+ throw new Error("City cities table is not initialized");
40
+ const city_store = new CityStore(cities_table);
41
+ const configured_base_url = env.get("DOWNCITY_FEDERATION_BASE_URL")
42
42
  ?? env.get("BETTER_AUTH_URL")
43
43
  ?? runtime.baseURL
44
44
  ?? "http://localhost";
@@ -49,7 +49,7 @@ export async function initialize_city(params) {
49
49
  service._client = db_client;
50
50
  service._authenticator = authenticator;
51
51
  service._env = env;
52
- service._townStore = town_store;
52
+ service._cityStore = city_store;
53
53
  service._raw = runtime.raw;
54
54
  service._baseURL = configured_base_url ?? runtime.baseURL;
55
55
  await service._onInit();
@@ -58,7 +58,7 @@ export async function initialize_city(params) {
58
58
  database,
59
59
  client: db_client,
60
60
  table_map,
61
- town_store,
61
+ city_store,
62
62
  authenticator,
63
63
  };
64
64
  }
@@ -82,24 +82,24 @@ function collect_service_schemas(services) {
82
82
  return collected;
83
83
  }
84
84
  /**
85
- * 确保 City 系统级 env key 存在。
85
+ * 确保 Federation 系统级 env key 存在。
86
86
  *
87
87
  * 关键说明(中文)
88
- * - 系统密钥也统一走 City env 表托管
88
+ * - 系统密钥也统一走 Federation env 表托管
89
89
  * - 缺失时自动生成,避免宿主环境额外配置负担
90
90
  */
91
91
  async function bootstrap_default_keys(env) {
92
- const admin_key = env.get("DOWNCITY_CITY_ADMIN_SECRET_KEY") || `admin_${randomSecret()}`;
93
- if (!env.get("DOWNCITY_CITY_ADMIN_SECRET_KEY")) {
94
- await env.upsert({ key: "DOWNCITY_CITY_ADMIN_SECRET_KEY", value: admin_key });
92
+ const admin_key = env.get("DOWNCITY_FEDERATION_ADMIN_SECRET_KEY") || `admin_${randomSecret()}`;
93
+ if (!env.get("DOWNCITY_FEDERATION_ADMIN_SECRET_KEY")) {
94
+ await env.upsert({ key: "DOWNCITY_FEDERATION_ADMIN_SECRET_KEY", value: admin_key });
95
95
  }
96
- const token_key = env.get("DOWNCITY_CITY_TOKEN_SIGNING_KEY") || `sign_${randomSecret()}`;
97
- if (!env.get("DOWNCITY_CITY_TOKEN_SIGNING_KEY")) {
98
- await env.upsert({ key: "DOWNCITY_CITY_TOKEN_SIGNING_KEY", value: token_key });
96
+ const token_key = env.get("DOWNCITY_FEDERATION_TOKEN_SIGNING_KEY") || `sign_${randomSecret()}`;
97
+ if (!env.get("DOWNCITY_FEDERATION_TOKEN_SIGNING_KEY")) {
98
+ await env.upsert({ key: "DOWNCITY_FEDERATION_TOKEN_SIGNING_KEY", value: token_key });
99
99
  }
100
100
  const better_auth_secret = env.get("BETTER_AUTH_SECRET") || `better_auth_${randomSecret()}${randomSecret()}`;
101
101
  if (!env.get("BETTER_AUTH_SECRET")) {
102
102
  await env.upsert({ key: "BETTER_AUTH_SECRET", value: better_auth_secret });
103
103
  }
104
104
  }
105
- //# sourceMappingURL=base-init.js.map
105
+ //# sourceMappingURL=federation-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-init.js","sourceRoot":"","sources":["../../src/federation/federation-init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * City instruction 聚合模块。
3
+ *
4
+ * 负责将所有 service 的 instruction 与 action 定义汇总成统一文档。
5
+ */
6
+ import type { Service } from "../service/service.js";
7
+ /**
8
+ * 聚合 City 的 instruction 文档。
9
+ */
10
+ export declare function build_federation_instruction(services: Service[]): Promise<string>;
11
+ //# sourceMappingURL=federation-instruction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-instruction.d.ts","sourceRoot":"","sources":["../../src/federation/federation-instruction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD;;GAEG;AACH,wBAAsB,4BAA4B,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BvF"}
@@ -3,11 +3,11 @@
3
3
  *
4
4
  * 负责将所有 service 的 instruction 与 action 定义汇总成统一文档。
5
5
  */
6
- import { formatInstructionDocument, resolveInstruction, } from "../../service/instruction.js";
6
+ import { formatInstructionDocument, resolveInstruction, } from "../service/instruction.js";
7
7
  /**
8
8
  * 聚合 City 的 instruction 文档。
9
9
  */
10
- export async function build_city_instruction(services) {
10
+ export async function build_federation_instruction(services) {
11
11
  const sections = [];
12
12
  for (const service of services) {
13
13
  const actions = service._listInstructionActions();
@@ -28,10 +28,10 @@ export async function build_city_instruction(services) {
28
28
  }
29
29
  return formatInstructionDocument({
30
30
  base: {
31
- builtin_services: ["env", "towns"],
31
+ builtin_services: ["env", "cities"],
32
32
  loaded_modules: sections.map((item) => item.id),
33
33
  },
34
34
  sections,
35
35
  });
36
36
  }
37
- //# sourceMappingURL=base-instruction.js.map
37
+ //# sourceMappingURL=federation-instruction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-instruction.js","sourceRoot":"","sources":["../../src/federation/federation-instruction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,yBAAyB,EACzB,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AAGnC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,QAAmB;IACpE,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE;YACzD,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO;SACR,CAAC,CAAC;QAEH,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,SAAS;YACf,OAAO;YACP,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,OAAO,yBAAyB,CAAC;QAC/B,IAAI,EAAE;YACJ,gBAAgB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YACnC,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;SAChD;QACD,QAAQ;KACT,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * City 路由构建模块。
2
+ * Federation 路由构建模块。
3
3
  *
4
4
  * 负责把 service/action 暴露为 Hono 路由,并统一处理:
5
5
  * - 请求身份解析
@@ -8,27 +8,27 @@
8
8
  * - 公共管理接口
9
9
  */
10
10
  import { Hono } from "hono";
11
- import type { CityTableApi } from "../../store/table-api.js";
12
- import type { Service } from "../../service/service.js";
13
- import type { Authenticator } from "../auth/authenticator.js";
14
- import type { Runtime } from "../runtime.js";
15
- import type { RuntimeUser } from "../auth/types.js";
11
+ import type { CityTableApi } from "../store/table-api.js";
12
+ import type { Service } from "../service/service.js";
13
+ import type { Authenticator } from "./auth/authenticator.js";
14
+ import type { Runtime } from "./runtime.js";
15
+ import type { RuntimeUser } from "./auth/types.js";
16
16
  declare module "hono" {
17
17
  interface ContextVariableMap {
18
18
  identity?: {
19
19
  kind: "guest" | "user" | "admin";
20
20
  };
21
21
  user?: RuntimeUser;
22
- town?: {
23
- town_id: string;
22
+ city?: {
23
+ city_id: string;
24
24
  status: string;
25
25
  };
26
26
  }
27
27
  }
28
28
  /**
29
- * 构建 City 对外路由。
29
+ * 构建 Federation 对外路由。
30
30
  */
31
- export declare function build_city_router(params: {
31
+ export declare function build_federation_router(params: {
32
32
  /** runtime 能力 */
33
33
  runtime: Runtime;
34
34
  /** 已注册服务 */
@@ -38,4 +38,4 @@ export declare function build_city_router(params: {
38
38
  /** 表映射 */
39
39
  table_map: Map<string, CityTableApi>;
40
40
  }): Hono;
41
- //# sourceMappingURL=base-router.d.ts.map
41
+ //# sourceMappingURL=federation-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-router.d.ts","sourceRoot":"","sources":["../../src/federation/federation-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAInD,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAU,kBAAkB;QAC1B,QAAQ,CAAC,EAAE;YAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC;QAChD,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5C;CACF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,iBAAiB;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY;IACZ,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU;IACV,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU;IACV,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACtC,GAAG,IAAI,CAoJP"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * City 路由构建模块。
2
+ * Federation 路由构建模块。
3
3
  *
4
4
  * 负责把 service/action 暴露为 Hono 路由,并统一处理:
5
5
  * - 请求身份解析
@@ -8,14 +8,14 @@
8
8
  * - 公共管理接口
9
9
  */
10
10
  import { Hono } from "hono";
11
- import { InstallableService } from "../../service/installable-service.js";
12
- import { httpError } from "../../utils/helpers.js";
13
- import { build_city_instruction } from "./base-instruction.js";
14
- import { collect_city_env_catalog } from "./base-env-catalog.js";
11
+ import { InstallableService } from "../service/installable-service.js";
12
+ import { httpError } from "../utils/helpers.js";
13
+ import { build_federation_instruction } from "./federation-instruction.js";
14
+ import { collect_federation_env_catalog } from "./federation-env-catalog.js";
15
15
  /**
16
- * 构建 City 对外路由。
16
+ * 构建 Federation 对外路由。
17
17
  */
18
- export function build_city_router(params) {
18
+ export function build_federation_router(params) {
19
19
  const { runtime, services, authenticator, table_map } = params;
20
20
  const app = new Hono();
21
21
  app.get("/health", (c) => c.json({
@@ -27,7 +27,7 @@ export function build_city_router(params) {
27
27
  }));
28
28
  app.use("/v1/*", async (c, next) => {
29
29
  // 关键说明(中文)
30
- // City env 默认读取运行时内存 cache。
30
+ // Federation env 默认读取运行时内存 cache。
31
31
  // 管理端通过 /v1/env/upsert、/remove、/import 修改 env 时会自动更新当前 cache;
32
32
  // 如果直接改数据库,可通过 /v1/env/refresh 或 city CLI 手动刷新。
33
33
  sync_request_origin(services, new URL(c.req.raw.url).origin);
@@ -35,8 +35,8 @@ export function build_city_router(params) {
35
35
  c.set("identity", { kind: result.level });
36
36
  if (result.user)
37
37
  c.set("user", result.user);
38
- if (result.town)
39
- c.set("town", result.town);
38
+ if (result.city)
39
+ c.set("city", result.city);
40
40
  await next();
41
41
  });
42
42
  app.get("/v1/services", (c) => c.json({
@@ -51,22 +51,22 @@ export function build_city_router(params) {
51
51
  authenticator.authorize({
52
52
  level: c.get("identity")?.kind ?? "guest",
53
53
  user: c.get("user"),
54
- town: c.get("town"),
54
+ city: c.get("city"),
55
55
  }, ["admin"]);
56
- return c.json({ items: collect_city_env_catalog(services, runtime.env) });
56
+ return c.json({ items: collect_federation_env_catalog(services, runtime.env) });
57
57
  }
58
58
  catch (error) {
59
59
  return build_error_response(error);
60
60
  }
61
61
  });
62
- app.get("/v1/city/instruction", async (c) => {
62
+ app.get("/v1/federation/instruction", async (c) => {
63
63
  try {
64
64
  authenticator.authorize({
65
65
  level: c.get("identity")?.kind ?? "guest",
66
66
  user: c.get("user"),
67
- town: c.get("town"),
67
+ city: c.get("city"),
68
68
  }, ["admin"]);
69
- return new Response(await build_city_instruction(services), {
69
+ return new Response(await build_federation_instruction(services), {
70
70
  status: 200,
71
71
  headers: {
72
72
  "content-type": "text/plain; charset=utf-8",
@@ -101,7 +101,7 @@ export function build_city_router(params) {
101
101
  db,
102
102
  identity: c.get("identity") ?? { kind: "guest" },
103
103
  user: c.get("user"),
104
- town: c.get("town"),
104
+ city: c.get("city"),
105
105
  env: (key) => runtime.env.get(key),
106
106
  service: { id: service.id, name: service.name },
107
107
  action: { id: action.id },
@@ -117,9 +117,9 @@ export function build_city_router(params) {
117
117
  authenticator.authorize({
118
118
  level: ctx.identity?.kind ?? "guest",
119
119
  user: ctx.user,
120
- town: ctx.town,
120
+ city: ctx.city,
121
121
  }, def.auth);
122
- ensure_town_identity_match(ctx);
122
+ ensure_city_identity_match(ctx);
123
123
  for (const hook of global_service_hooks(services)) {
124
124
  await hook.runBefore(ctx);
125
125
  }
@@ -202,19 +202,19 @@ function search_params_to_object(search_params) {
202
202
  return result;
203
203
  }
204
204
  /**
205
- * 校验 input.town_id 与 token 绑定产品一致。
205
+ * 校验 input.city_id 与 token 绑定产品一致。
206
206
  */
207
- function ensure_town_identity_match(ctx) {
207
+ function ensure_city_identity_match(ctx) {
208
208
  if (ctx.identity?.kind !== "user")
209
209
  return;
210
- const request_town_id = typeof ctx.input.town_id === "string"
211
- ? ctx.input.town_id.trim()
210
+ const request_city_id = typeof ctx.input.city_id === "string"
211
+ ? ctx.input.city_id.trim()
212
212
  : "";
213
- if (!request_town_id)
213
+ if (!request_city_id)
214
214
  return;
215
- const token_town_id = ctx.town?.town_id ?? "";
216
- if (request_town_id !== token_town_id) {
217
- throw httpError(403, "town_id does not match the authenticated token");
215
+ const token_city_id = ctx.city?.city_id ?? "";
216
+ if (request_city_id !== token_city_id) {
217
+ throw httpError(403, "city_id does not match the authenticated token");
218
218
  }
219
219
  }
220
220
  /**
@@ -225,4 +225,4 @@ function build_error_response(error) {
225
225
  const status = error.statusCode ?? 500;
226
226
  return Response.json({ error: { message, type: "server_error" } }, { status: status });
227
227
  }
228
- //# sourceMappingURL=base-router.js.map
228
+ //# sourceMappingURL=federation-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-router.js","sourceRoot":"","sources":["../../src/federation/federation-router.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  /**
2
- * City 组装模块。
2
+ * Federation 组装模块。
3
3
  *
4
4
  * 关键说明(中文)
5
5
  * - 用户只需要传入 Drizzle db,方言、底层 client 全部由 City 自己从 db 推断。
6
6
  * - 用户既不需要传 `dialect`,也不需要传 `raw`,避免参数语义重复。
7
7
  */
8
- import type { CityBaseOptions } from "../types.js";
9
- import type { Runtime } from "../runtime.js";
8
+ import type { FederationOptions } from "./types.js";
9
+ import type { Runtime } from "./runtime.js";
10
10
  /**
11
- * 从 CityBaseOptions 创建 runtime。
11
+ * 从 FederationOptions 创建 runtime。
12
12
  *
13
13
  * 关键说明(中文)
14
14
  * - 通过 Drizzle 暴露的 `db.dialect` 自动推断 sqlite / pg 方言。
15
15
  * - 通过 `db.$client` 提取底层 client,既用于 DDL 也作为 raw 暴露给需要它的 service。
16
16
  */
17
- export declare function create_runtime_from_db(options: CityBaseOptions): Runtime;
18
- //# sourceMappingURL=base-runtime.d.ts.map
17
+ export declare function create_federation_runtime(options: FederationOptions): Runtime;
18
+ //# sourceMappingURL=federation-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-runtime.d.ts","sourceRoot":"","sources":["../../src/federation/federation-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EAA8B,OAAO,EAAE,MAAM,cAAc,CAAC;AAGxE;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAY7E"}
@@ -1,21 +1,21 @@
1
1
  /**
2
- * City 组装模块。
2
+ * Federation 组装模块。
3
3
  *
4
4
  * 关键说明(中文)
5
5
  * - 用户只需要传入 Drizzle db,方言、底层 client 全部由 City 自己从 db 推断。
6
6
  * - 用户既不需要传 `dialect`,也不需要传 `raw`,避免参数语义重复。
7
7
  */
8
- import { pgEnv, sqliteEnv } from "../../service/env/schema.js";
9
- import { pgTowns, sqliteTowns } from "../../service/towns/schema.js";
10
- import { normalizeEnvKey, parseDotenvEntries } from "../../utils/helpers.js";
8
+ import { pgEnv, sqliteEnv } from "../service/env/schema.js";
9
+ import { pgCities, sqliteCities } from "../service/cities/schema.js";
10
+ import { normalizeEnvKey, parseDotenvEntries } from "../utils/helpers.js";
11
11
  /**
12
- * 从 CityBaseOptions 创建 runtime。
12
+ * 从 FederationOptions 创建 runtime。
13
13
  *
14
14
  * 关键说明(中文)
15
15
  * - 通过 Drizzle 暴露的 `db.dialect` 自动推断 sqlite / pg 方言。
16
16
  * - 通过 `db.$client` 提取底层 client,既用于 DDL 也作为 raw 暴露给需要它的 service。
17
17
  */
18
- export function create_runtime_from_db(options) {
18
+ export function create_federation_runtime(options) {
19
19
  const dialect = infer_dialect(options.db);
20
20
  const builtin_tables = builtin_tables_for(dialect);
21
21
  const client = extract_db_client(options.db);
@@ -28,12 +28,12 @@ export function create_runtime_from_db(options) {
28
28
  };
29
29
  }
30
30
  /**
31
- * 推断 City 内置表定义。
31
+ * 推断 Federation 内置表定义。
32
32
  */
33
33
  function builtin_tables_for(dialect) {
34
34
  return dialect === "pg"
35
- ? { towns: pgTowns, env: pgEnv }
36
- : { towns: sqliteTowns, env: sqliteEnv };
35
+ ? { cities: pgCities, env: pgEnv }
36
+ : { cities: sqliteCities, env: sqliteEnv };
37
37
  }
38
38
  /**
39
39
  * 从 Drizzle 实例推断方言。
@@ -127,4 +127,4 @@ class DatabaseEnvProvider {
127
127
  return stored;
128
128
  }
129
129
  }
130
- //# sourceMappingURL=base-runtime.js.map
130
+ //# sourceMappingURL=federation-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-runtime.js","sourceRoot":"","sources":["../../src/federation/federation-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAM1E;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA0B;IAClE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAE7C,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,EAAE;QACpB,MAAM;QACN,GAAG,EAAE,IAAI,mBAAmB,EAAE;QAC9B,aAAa,EAAE,cAAc;QAC7B,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAwB;IAClD,OAAO,OAAO,KAAK,IAAI;QACrB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE;QAClC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,EAA0D;IAC/E,MAAM,YAAY,GAAI,EAAE,CAAC,OAA2D,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;IAC9G,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;IAC7C,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;AACjH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,EAAyB;IAClD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;IAC1B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,MAAkB,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO;YACL,MAAM,EAAE,CAAC,GAAW,EAAE,MAAkB,EAAE,EAAE,CACzC,MAAkE,CAAC,GAAG,EAAE,MAAM,CAAC;SACnF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,mBAAmB;IACf,KAAK,CAAY;IACR,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEnD,KAAK,CAAC,WAAW,CAAC,KAAe;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,GAAG;YACH,KAAK;YACL,MAAM,EAAE,UAAmB;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAqB;QAChC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAY;QACvB,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * CityBase 主模块。
2
+ * Federation 主模块。
3
3
  *
4
- * CityBase 是城市基础设施运行容器,负责协调:
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 "../../service/service.js";
14
- import { type ServiceDefinition } from "../../service/installable-service.js";
15
- import type { CityBaseOptions, CityBaseHealthStatus, CityHandleRequestOptions } from "../types.js";
16
- import type { Authenticator } from "../auth/authenticator.js";
17
- import type { CityTableApi } from "../../store/table-api.js";
18
- export declare class CityBase {
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 town_store?;
28
- constructor(options: CityBaseOptions);
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?: CityHandleRequestOptions): Promise<Response>;
56
+ handleRequest(request: Request, options?: FederationHandleRequestOptions): Promise<Response>;
57
57
  /**
58
58
  * 健康检查。
59
59
  */
60
- health(): Promise<CityBaseHealthStatus>;
60
+ health(): Promise<FederationHealthStatus>;
61
61
  /**
62
62
  * 聚合 instruction 文档。
63
63
  */
64
64
  instruction(): Promise<string>;
65
65
  /**
66
- * 执行 City 初始化。
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 延迟访问 town store。
78
+ * 给 Authenticator 延迟访问 city store。
79
79
  */
80
80
  private require_ready;
81
81
  }
82
- //# sourceMappingURL=base.d.ts.map
82
+ //# sourceMappingURL=federation.d.ts.map