@downcity/city 0.2.211 → 0.2.214
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 +15 -7
- package/bin/client/bureau.d.ts +26 -11
- package/bin/client/bureau.d.ts.map +1 -1
- package/bin/client/bureau.js +47 -34
- package/bin/client/bureau.js.map +1 -1
- package/bin/client/city.d.ts +7 -0
- package/bin/client/city.d.ts.map +1 -1
- package/bin/client/city.js +40 -0
- package/bin/client/city.js.map +1 -1
- package/bin/client/types.d.ts +2 -2
- package/bin/client/types.js +2 -2
- package/bin/federation/auth/authenticator.d.ts +2 -5
- package/bin/federation/auth/authenticator.d.ts.map +1 -1
- package/bin/federation/auth/authenticator.js +4 -9
- package/bin/federation/auth/authenticator.js.map +1 -1
- package/bin/federation/auth/bureau-token-schema.d.ts +1 -73
- package/bin/federation/auth/bureau-token-schema.d.ts.map +1 -1
- package/bin/federation/auth/bureau-token-schema.js +1 -9
- package/bin/federation/auth/bureau-token-schema.js.map +1 -1
- package/bin/federation/auth/bureau-token-store.d.ts +3 -3
- package/bin/federation/auth/bureau-token-store.d.ts.map +1 -1
- package/bin/federation/auth/bureau-token-store.js +4 -31
- package/bin/federation/auth/bureau-token-store.js.map +1 -1
- package/bin/federation/auth/federation-key-store.d.ts +7 -0
- package/bin/federation/auth/federation-key-store.d.ts.map +1 -1
- package/bin/federation/auth/federation-key-store.js +24 -5
- package/bin/federation/auth/federation-key-store.js.map +1 -1
- package/bin/federation/auth/key-schema.d.ts +9 -0
- package/bin/federation/auth/key-schema.d.ts.map +1 -1
- package/bin/federation/auth/key-schema.js +10 -0
- package/bin/federation/auth/key-schema.js.map +1 -1
- package/bin/federation/federation-init.d.ts.map +1 -1
- package/bin/federation/federation-init.js +29 -4
- package/bin/federation/federation-init.js.map +1 -1
- package/bin/federation/federation-router.d.ts +1 -3
- package/bin/federation/federation-router.d.ts.map +1 -1
- package/bin/federation/federation-router.js +0 -1
- package/bin/federation/federation-router.js.map +1 -1
- package/bin/federation/federation-runtime.js +7 -0
- package/bin/federation/federation-runtime.js.map +1 -1
- package/bin/federation/runtime.d.ts +6 -0
- package/bin/federation/runtime.d.ts.map +1 -1
- package/bin/index.d.ts +1 -3
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +0 -1
- package/bin/index.js.map +1 -1
- package/bin/pact/admin/index.d.ts +2 -2
- package/bin/pact/admin/index.js +4 -4
- package/bin/pact/admin/index.js.map +1 -1
- package/bin/pact/admin/types.d.ts +3 -3
- package/bin/pact/admin/types.d.ts.map +1 -1
- package/bin/pact/invoker/bureaus/index.d.ts +3 -3
- package/bin/pact/invoker/bureaus/index.d.ts.map +1 -1
- package/bin/pact/invoker/bureaus/index.js +3 -3
- package/bin/pact/invoker/bureaus/index.js.map +1 -1
- package/bin/service/ai/ai-service.d.ts +1 -1
- package/bin/service/ai/ai-service.d.ts.map +1 -1
- package/bin/service/ai/model-registry.d.ts +1 -1
- package/bin/service/ai/model-registry.d.ts.map +1 -1
- package/bin/service/bureaus/bureaus-service.d.ts +2 -4
- package/bin/service/bureaus/bureaus-service.d.ts.map +1 -1
- package/bin/service/bureaus/bureaus-service.js +4 -23
- package/bin/service/bureaus/bureaus-service.js.map +1 -1
- package/bin/service/env/env-store.d.ts +7 -0
- package/bin/service/env/env-store.d.ts.map +1 -1
- package/bin/service/env/env-store.js +23 -0
- package/bin/service/env/env-store.js.map +1 -1
- package/bin/service/installable-service.d.ts +2 -5
- package/bin/service/installable-service.d.ts.map +1 -1
- package/bin/service/installable-service.js +0 -1
- package/bin/service/installable-service.js.map +1 -1
- package/bin/service/service.d.ts +1 -4
- package/bin/service/service.d.ts.map +1 -1
- package/bin/service/service.js.map +1 -1
- package/bin/store/db.d.ts +12 -1
- package/bin/store/db.d.ts.map +1 -1
- package/bin/store/db.js.map +1 -1
- package/bin/store/table-api.d.ts +3 -0
- package/bin/store/table-api.d.ts.map +1 -1
- package/bin/store/table-api.js +9 -0
- package/bin/store/table-api.js.map +1 -1
- package/bin/types/Bureau.d.ts +5 -37
- package/bin/types/Bureau.d.ts.map +1 -1
- package/bin/types/Bureau.js +2 -2
- package/package.json +2 -2
- package/bin/client/federation-admin.d.ts +0 -32
- package/bin/client/federation-admin.d.ts.map +0 -1
- package/bin/client/federation-admin.js +0 -54
- package/bin/client/federation-admin.js.map +0 -1
- package/bin/types/FederationAdmin.d.ts +0 -16
- package/bin/types/FederationAdmin.d.ts.map +0 -1
- package/bin/types/FederationAdmin.js +0 -7
- package/bin/types/FederationAdmin.js.map +0 -1
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,wBAAwB;AACxB,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAepD,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;AAmC7C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAyBpE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,QAAQ,EACR,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAQjC,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
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,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAepD,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;AAmC7C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAyBpE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,QAAQ,EACR,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAQjC,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAsBxD,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;AAsB3C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAmCxE,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;AAC3D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE7E,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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Federation 控制面 HTTP 访问层。
|
|
3
3
|
*
|
|
4
|
-
* 统一使用
|
|
4
|
+
* 统一使用 Federation Root Secret 或 Bureau Token 调用管理接口。
|
|
5
5
|
*/
|
|
6
6
|
import { ServiceClient } from "../invoker/invoker.js";
|
|
7
7
|
import { BalanceInvoker } from "../invoker/balance/index.js";
|
|
@@ -32,7 +32,7 @@ export declare class AdminPactAccess {
|
|
|
32
32
|
* 为 Federation 管理请求统一补齐鉴权头。
|
|
33
33
|
*
|
|
34
34
|
* 关键说明(中文)
|
|
35
|
-
* -
|
|
35
|
+
* - 所有控制面请求都必须带上管理凭证
|
|
36
36
|
* - 默认仍然补 `content-type: application/json`,便于 POST action 统一行为
|
|
37
37
|
*/
|
|
38
38
|
private withAuth;
|
package/bin/pact/admin/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Federation 控制面 HTTP 访问层。
|
|
3
3
|
*
|
|
4
|
-
* 统一使用
|
|
4
|
+
* 统一使用 Federation Root Secret 或 Bureau Token 调用管理接口。
|
|
5
5
|
*/
|
|
6
6
|
import { ServiceClient } from "../invoker/invoker.js";
|
|
7
7
|
import { BalanceInvoker } from "../invoker/balance/index.js";
|
|
@@ -20,10 +20,10 @@ export class AdminPactAccess {
|
|
|
20
20
|
requester;
|
|
21
21
|
constructor(options) {
|
|
22
22
|
if (!options || typeof options !== "object") {
|
|
23
|
-
throw new TypeError("
|
|
23
|
+
throw new TypeError("Bureau options are required");
|
|
24
24
|
}
|
|
25
25
|
this.base_url = requiredString(options.base_url, "base_url").replace(/\/+$/, "");
|
|
26
|
-
this.secret = requiredString(options.
|
|
26
|
+
this.secret = requiredString(options.credential, "credential");
|
|
27
27
|
this.requester = create_http_requester({
|
|
28
28
|
base_url: this.base_url,
|
|
29
29
|
fetch: options.fetch,
|
|
@@ -70,7 +70,7 @@ export class AdminPactAccess {
|
|
|
70
70
|
* 为 Federation 管理请求统一补齐鉴权头。
|
|
71
71
|
*
|
|
72
72
|
* 关键说明(中文)
|
|
73
|
-
* -
|
|
73
|
+
* - 所有控制面请求都必须带上管理凭证
|
|
74
74
|
* - 默认仍然补 `content-type: application/json`,便于 POST action 统一行为
|
|
75
75
|
*/
|
|
76
76
|
withAuth(init) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pact/admin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;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;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACL,cAAc,GAEf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,GAEtB,MAAM,iBAAiB,CAAC;AAOzB,MAAM,OAAO,eAAe;IACjB,OAAO,CAAiB;IACxB,MAAM,CAAgB;IACtB,OAAO,CAAiB;IACxB,GAAG,CAAa;IAER,QAAQ,CAAS;IACjB,MAAM,CAAqB;IAC3B,SAAS,CAAgB;IAE1C,YAAY,OAA+B;QACzC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pact/admin/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
import type { FetchLike } from "../http.js";
|
|
5
5
|
import type { CityModelDescriptor } from "@downcity/type";
|
|
6
6
|
import type { UserServiceSummary } from "../user/types.js";
|
|
7
|
-
/**
|
|
7
|
+
/** Bureau 管理访问层构造参数。 */
|
|
8
8
|
export interface AdminPactAccessOptions {
|
|
9
9
|
/** Federation 管理端入口地址,支持 `http(s)://`。 */
|
|
10
10
|
base_url: string;
|
|
11
|
-
/** Federation
|
|
12
|
-
|
|
11
|
+
/** Federation Root Secret 或已注册 Bureau Token。 */
|
|
12
|
+
credential: string;
|
|
13
13
|
/** 自定义 fetch 实现 */
|
|
14
14
|
fetch?: FetchLike;
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/pact/admin/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/pact/admin/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,wBAAwB;AACxB,MAAM,WAAW,sBAAsB;IACrC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Federation Bureau 注册表管理调用器。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Federation 仅接收 hash
|
|
4
|
+
* 该调用器服务于 Bureau 管理面。Bureau Token 明文由调用方生成,
|
|
5
|
+
* Federation 仅接收 hash 和生命周期管理信息。
|
|
6
6
|
*/
|
|
7
7
|
import type { RequestInitLike } from "../../http.js";
|
|
8
8
|
import type { BureauTokenSummary, RegisterBureauTokenInput } from "../../../types/Bureau.js";
|
|
@@ -13,7 +13,7 @@ export declare class BureausInvoker {
|
|
|
13
13
|
/** 发送带 Federation Admin 鉴权的 JSON 请求。 */
|
|
14
14
|
requestJSON: <T>(path: string, init: RequestInitLike) => Promise<T>;
|
|
15
15
|
});
|
|
16
|
-
/** 登记 Bureau Token hash
|
|
16
|
+
/** 登记 Bureau Token hash。 */
|
|
17
17
|
register(input: RegisterBureauTokenInput): Promise<BureauTokenSummary>;
|
|
18
18
|
/** 列出 Bureau 注册元数据,不返回 hash 或明文。 */
|
|
19
19
|
list(): Promise<BureauTokenSummary[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pact/invoker/bureaus/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAIlC,iCAAiC;AACjC,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyD;gBAEjE,OAAO,EAAE;QACnB,wCAAwC;QACxC,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;KACrE;IAID,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pact/invoker/bureaus/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAIlC,iCAAiC;AACjC,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyD;gBAEjE,OAAO,EAAE;QACnB,wCAAwC;QACxC,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;KACrE;IAID,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAOtE,oCAAoC;IAC9B,IAAI,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAO3C,2BAA2B;IAC3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;CAMrD"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Federation Bureau 注册表管理调用器。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Federation 仅接收 hash
|
|
4
|
+
* 该调用器服务于 Bureau 管理面。Bureau Token 明文由调用方生成,
|
|
5
|
+
* Federation 仅接收 hash 和生命周期管理信息。
|
|
6
6
|
*/
|
|
7
7
|
const PREFIX = "/v1/bureaus";
|
|
8
8
|
/** Federation Bureau 注册表管理入口。 */
|
|
@@ -11,7 +11,7 @@ export class BureausInvoker {
|
|
|
11
11
|
constructor(options) {
|
|
12
12
|
this.req = options.requestJSON;
|
|
13
13
|
}
|
|
14
|
-
/** 登记 Bureau Token hash
|
|
14
|
+
/** 登记 Bureau Token hash。 */
|
|
15
15
|
register(input) {
|
|
16
16
|
return this.req(`${PREFIX}/register`, {
|
|
17
17
|
method: "POST",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pact/invoker/bureaus/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,MAAM,GAAG,aAAa,CAAC;AAE7B,iCAAiC;AACjC,MAAM,OAAO,cAAc;IACR,GAAG,CAAyD;IAE7E,YAAY,OAGX;QACC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pact/invoker/bureaus/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,MAAM,GAAG,aAAa,CAAC;AAE7B,iCAAiC;AACjC,MAAM,OAAO,cAAc;IACR,GAAG,CAAyD;IAE7E,YAAY,OAGX;QACC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,4BAA4B;IAC5B,QAAQ,CAAC,KAA+B;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,WAAW,EAAE;YACpC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAkC,GAAG,MAAM,OAAO,EAAE;YAC7E,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,2BAA2B;IAC3B,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,EAAE;YAClC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -134,7 +134,7 @@ export declare class AIService extends Service {
|
|
|
134
134
|
private handleCharge;
|
|
135
135
|
static listModels(aiService: AIService, options: {
|
|
136
136
|
env: EnvReader;
|
|
137
|
-
identity: "guest" | "user" | "
|
|
137
|
+
identity: "guest" | "user" | "admin";
|
|
138
138
|
}): CityModelDescriptor[];
|
|
139
139
|
}
|
|
140
140
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-service.d.ts","sourceRoot":"","sources":["../../../src/service/ai/ai-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAQV,iBAAiB,EAIjB,gBAAgB,EAGjB,MAAM,mBAAmB,CAAC;AAqE3B,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAWrD,qBAAa,SAAU,SAAQ,OAAO;IACpC,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAEhD,0CAA0C;IAC1C,OAAO,CAAC,eAAe,CAA+B;IAEtD,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAkB;IAC3C,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAS;gBAE3C,OAAO,GAAE,gBAAqB;IA+C1C,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,iBAAiB,GAAG,iBAAiB,EAAE,CAAC,EAAE,GAAG,IAAI;IAKjE,UAAU,IAAI,iBAAiB,EAAE;IAIjC,SAAS,IAAI,OAAO;IAMpB,OAAO,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG;QAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE;IAenH,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,kBAAkB;IAU1B,kCAAkC;IAClC,OAAO,CAAC,mBAAmB;YAcb,cAAc;IAmC5B;;;;;OAKG;YACW,yBAAyB;YA8CzB,cAAc;YAgBd,YAAY;IAS1B;;OAEG;YACW,aAAa;IAuD3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAOjC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAc1C;;OAEG;YACW,iBAAiB;IAU/B;;;;;;;OAOG;YACW,2BAA2B;IAwDzC;;OAEG;YACW,cAAc;IAuB5B;;OAEG;YACW,eAAe;IAW7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;YAcV,qBAAqB;IAsDnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;;;;;;OAOG;YACW,QAAQ;IAMtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B,yBAAyB;IACzB,OAAO,CAAC,gBAAgB;IAiBxB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;YACW,YAAY;IA0D1B,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;QAC/C,GAAG,EAAE,SAAS,CAAC;QACf,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"ai-service.d.ts","sourceRoot":"","sources":["../../../src/service/ai/ai-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAQV,iBAAiB,EAIjB,gBAAgB,EAGjB,MAAM,mBAAmB,CAAC;AAqE3B,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAWrD,qBAAa,SAAU,SAAQ,OAAO;IACpC,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAEhD,0CAA0C;IAC1C,OAAO,CAAC,eAAe,CAA+B;IAEtD,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAkB;IAC3C,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAS;gBAE3C,OAAO,GAAE,gBAAqB;IA+C1C,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,iBAAiB,GAAG,iBAAiB,EAAE,CAAC,EAAE,GAAG,IAAI;IAKjE,UAAU,IAAI,iBAAiB,EAAE;IAIjC,SAAS,IAAI,OAAO;IAMpB,OAAO,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG;QAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE;IAenH,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,kBAAkB;IAU1B,kCAAkC;IAClC,OAAO,CAAC,mBAAmB;YAcb,cAAc;IAmC5B;;;;;OAKG;YACW,yBAAyB;YA8CzB,cAAc;YAgBd,YAAY;IAS1B;;OAEG;YACW,aAAa;IAuD3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAOjC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAc1C;;OAEG;YACW,iBAAiB;IAU/B;;;;;;;OAOG;YACW,2BAA2B;IAwDzC;;OAEG;YACW,cAAc;IAuB5B;;OAEG;YACW,eAAe;IAW7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;YAcV,qBAAqB;IAsDnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;;;;;;OAOG;YACW,QAAQ;IAMtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B,yBAAyB;IACzB,OAAO,CAAC,gBAAgB;IAiBxB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;YACW,YAAY;IA0D1B,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;QAC/C,GAAG,EAAE,SAAS,CAAC;QACf,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;KACtC,GAAG,mBAAmB,EAAE;CAM1B"}
|
|
@@ -13,7 +13,7 @@ interface ModelCatalogOptions {
|
|
|
13
13
|
/** 当前请求可读取的环境变量。 */
|
|
14
14
|
env: EnvReader;
|
|
15
15
|
/** 当前请求身份,决定是否返回管理字段。 */
|
|
16
|
-
identity: "guest" | "user" | "
|
|
16
|
+
identity: "guest" | "user" | "admin";
|
|
17
17
|
/** 根据运行时 action 计算模型公开模态。 */
|
|
18
18
|
get_modalities: (model: AIModelDefinition) => string[];
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/service/ai/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAI1D,kBAAkB;AAClB,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAErD,kBAAkB;AAClB,UAAU,mBAAmB;IAC3B,oBAAoB;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,yBAAyB;IACzB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/service/ai/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAI1D,kBAAkB;AAClB,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAErD,kBAAkB;AAClB,UAAU,mBAAmB;IAC3B,oBAAoB;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,yBAAyB;IACzB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,6BAA6B;IAC7B,cAAc,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,MAAM,EAAE,CAAC;CACxD;AAED,0BAA0B;AAC1B,qBAAa,eAAe;IAC1B,sBAAsB;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAElE,mBAAmB;IACnB,QAAQ,CAAC,GAAG,MAAM,EAAE,CAAC,iBAAiB,GAAG,iBAAiB,EAAE,CAAC,EAAE,GAAG,IAAI;IAYtE,mBAAmB;IACnB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,sBAAsB;IACtB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIpD,mBAAmB;IACnB,IAAI,IAAI,iBAAiB,EAAE;IAI3B,yBAAyB;IACzB,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE;IAMnE,yBAAyB;IACzB,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB,EAAE;IAwBhE,wBAAwB;IACxB,OAAO,CAAC,oBAAoB;CAS7B"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Federation Bureau
|
|
2
|
+
* Federation Bureau 管理凭证服务。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* 运维侧生成;本服务的管理动作只登记 hash、列出元数据和撤销注册记录。
|
|
4
|
+
* Token 明文由 CLI 在运维侧生成;本服务只登记 hash、列出元数据和撤销记录。
|
|
6
5
|
*/
|
|
7
6
|
import { Service } from "../service.js";
|
|
8
7
|
/** Federation 内置 Bureau 上下文服务。 */
|
|
9
8
|
export declare class BureausService extends Service {
|
|
10
9
|
private store;
|
|
11
|
-
private city_store;
|
|
12
10
|
constructor();
|
|
13
11
|
_onInit(): Promise<void>;
|
|
14
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bureaus-service.d.ts","sourceRoot":"","sources":["../../../src/service/bureaus/bureaus-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bureaus-service.d.ts","sourceRoot":"","sources":["../../../src/service/bureaus/bureaus-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,kCAAkC;AAClC,qBAAa,cAAe,SAAQ,OAAO;IACzC,OAAO,CAAC,KAAK,CAAoB;;IA4B3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -1,41 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Federation Bureau
|
|
2
|
+
* Federation Bureau 管理凭证服务。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* 运维侧生成;本服务的管理动作只登记 hash、列出元数据和撤销注册记录。
|
|
4
|
+
* Token 明文由 CLI 在运维侧生成;本服务只登记 hash、列出元数据和撤销记录。
|
|
6
5
|
*/
|
|
7
6
|
import { Service } from "../service.js";
|
|
8
7
|
/** Federation 内置 Bureau 上下文服务。 */
|
|
9
8
|
export class BureausService extends Service {
|
|
10
9
|
store;
|
|
11
|
-
city_store;
|
|
12
10
|
constructor() {
|
|
13
11
|
super({ id: "bureaus", name: "Bureaus" });
|
|
14
12
|
this.instruction = [
|
|
15
|
-
"
|
|
16
|
-
"管理端可登记 CLI 生成的 Token hash
|
|
13
|
+
"管理 Federation 的 Bureau Token 注册表。",
|
|
14
|
+
"管理端可登记 CLI 生成的 Token hash、列出记录或立即撤销访问。",
|
|
17
15
|
"Federation 不生成或返回 Bureau Token 明文。",
|
|
18
16
|
].join("\n");
|
|
19
|
-
this.action("context", async (ctx) => ({
|
|
20
|
-
token_id: ctx.bureau.token_id,
|
|
21
|
-
city_id: ctx.bureau.city_id,
|
|
22
|
-
capabilities: ctx.bureau.capabilities,
|
|
23
|
-
}), {
|
|
24
|
-
method: "GET",
|
|
25
|
-
auth: ["bureau"],
|
|
26
|
-
});
|
|
27
17
|
this.action("register", async (ctx) => {
|
|
28
|
-
const city_id = String(ctx.input.city_id ?? "").trim();
|
|
29
|
-
const city = await this.city_store.get(city_id);
|
|
30
|
-
if (!city)
|
|
31
|
-
throw new TypeError(`Unknown city: ${city_id}`);
|
|
32
|
-
if (city.status !== "active")
|
|
33
|
-
throw new TypeError(`City is not active: ${city_id}`);
|
|
34
18
|
return await this.store.register({
|
|
35
19
|
token_id: String(ctx.input.token_id ?? ""),
|
|
36
20
|
token_hash: String(ctx.input.token_hash ?? ""),
|
|
37
|
-
city_id,
|
|
38
|
-
capabilities: ctx.input.capabilities,
|
|
39
21
|
});
|
|
40
22
|
}, { auth: ["admin"] });
|
|
41
23
|
this.action("list", async () => ({ items: await this.store.list() }), {
|
|
@@ -49,7 +31,6 @@ export class BureausService extends Service {
|
|
|
49
31
|
}
|
|
50
32
|
async _onInit() {
|
|
51
33
|
this.store = this._bureauTokenStore;
|
|
52
|
-
this.city_store = this._cityStore;
|
|
53
34
|
}
|
|
54
35
|
}
|
|
55
36
|
//# sourceMappingURL=bureaus-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bureaus-service.js","sourceRoot":"","sources":["../../../src/service/bureaus/bureaus-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bureaus-service.js","sourceRoot":"","sources":["../../../src/service/bureaus/bureaus-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,kCAAkC;AAClC,MAAM,OAAO,cAAe,SAAQ,OAAO;IACjC,KAAK,CAAoB;IAEjC;QACE,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG;YACjB,mCAAmC;YACnC,wCAAwC;YACxC,oCAAoC;SACrC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACpC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC/B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC1C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;aAC/C,CAAC,CAAC;QACL,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;YACpE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAClC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAkB,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -10,6 +10,13 @@ export declare class EnvStore {
|
|
|
10
10
|
constructor(table: CityTableApi<EnvEntry>);
|
|
11
11
|
list(): Promise<EnvEntry[]>;
|
|
12
12
|
upsert(input: EnvUpsertInput): Promise<EnvEntry>;
|
|
13
|
+
/**
|
|
14
|
+
* 原子确保 env key 存在,并返回数据库最终保存的值。
|
|
15
|
+
*
|
|
16
|
+
* 多个 Worker isolate 并发首次启动时,所有实例可能生成不同默认值。主键约束负责
|
|
17
|
+
* 选出唯一胜者,失败方随后读取胜出值,避免覆盖已经建立的 Federation 身份。
|
|
18
|
+
*/
|
|
19
|
+
ensure(input: EnvUpsertInput): Promise<EnvEntry>;
|
|
13
20
|
remove(key: string): Promise<void>;
|
|
14
21
|
}
|
|
15
22
|
//# sourceMappingURL=env-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-store.d.ts","sourceRoot":"","sources":["../../../src/service/env/env-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3D,qBAAa,QAAQ;IACP,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC;IAE3C,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI3B,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkBhD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzC"}
|
|
1
|
+
{"version":3,"file":"env-store.d.ts","sourceRoot":"","sources":["../../../src/service/env/env-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3D,qBAAa,QAAQ;IACP,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC;IAE3C,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI3B,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkBtD;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkBhD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzC"}
|
|
@@ -28,6 +28,29 @@ export class EnvStore {
|
|
|
28
28
|
}
|
|
29
29
|
return { key, value, source: "database" };
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* 原子确保 env key 存在,并返回数据库最终保存的值。
|
|
33
|
+
*
|
|
34
|
+
* 多个 Worker isolate 并发首次启动时,所有实例可能生成不同默认值。主键约束负责
|
|
35
|
+
* 选出唯一胜者,失败方随后读取胜出值,避免覆盖已经建立的 Federation 身份。
|
|
36
|
+
*/
|
|
37
|
+
async ensure(input) {
|
|
38
|
+
const key = normalizeEnvKey(input.key);
|
|
39
|
+
const value = String(input.value ?? "");
|
|
40
|
+
const now = new Date().toISOString();
|
|
41
|
+
await this.table.insert_if_absent({
|
|
42
|
+
key,
|
|
43
|
+
value,
|
|
44
|
+
source: "database",
|
|
45
|
+
created_at: now,
|
|
46
|
+
updated_at: now,
|
|
47
|
+
});
|
|
48
|
+
const rows = await this.table.select({ key });
|
|
49
|
+
const stored = rows[0];
|
|
50
|
+
if (!stored)
|
|
51
|
+
throw new Error(`Failed to initialize Federation env key: ${key}`);
|
|
52
|
+
return { key, value: stored.value, source: "database" };
|
|
53
|
+
}
|
|
31
54
|
async remove(key) {
|
|
32
55
|
await this.table.delete({ key: normalizeEnvKey(key) });
|
|
33
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-store.js","sourceRoot":"","sources":["../../../src/service/env/env-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,MAAM,OAAO,QAAQ;IACC;IAApB,YAAoB,KAA6B;QAA7B,UAAK,GAAL,KAAK,CAAwB;IAAG,CAAC;IAErD,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAqB;QAChC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAuB,CAAC,CAAC;QAEnE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACtB,KAAK,EAAE,EAAE,GAAG,EAAuB;gBACnC,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAuB;aAC7E,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAc,CAAC,CAAC;QAC5G,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,EAAuB,CAAC,CAAC;IAC9E,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"env-store.js","sourceRoot":"","sources":["../../../src/service/env/env-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,MAAM,OAAO,QAAQ;IACC;IAApB,YAAoB,KAA6B;QAA7B,UAAK,GAAL,KAAK,CAAwB;IAAG,CAAC;IAErD,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAqB;QAChC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAuB,CAAC,CAAC;QAEnE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACtB,KAAK,EAAE,EAAE,GAAG,EAAuB;gBACnC,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAuB;aAC7E,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAc,CAAC,CAAC;QAC5G,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,KAAqB;QAChC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAChC,GAAG;YACH,KAAK;YACL,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;SACJ,CAAC,CAAC;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAuB,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,EAAE,CAAC,CAAC;QAChF,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,EAAuB,CAAC,CAAC;IAC9E,CAAC;CACF"}
|
|
@@ -9,7 +9,6 @@ import type { Action } from "./action.js";
|
|
|
9
9
|
import { Hook } from "./hook.js";
|
|
10
10
|
import type { CityTableApi } from "../store/table-api.js";
|
|
11
11
|
import type { CreateUserTokenInput, UserTokenIssueResult, RuntimeUser } from "../federation/auth/types.js";
|
|
12
|
-
import type { RuntimeBureau } from "../types/Bureau.js";
|
|
13
12
|
import type { InstructionDefinition } from "./instruction.js";
|
|
14
13
|
import type { FederationRequestTransport } from "../federation/types.js";
|
|
15
14
|
export interface ServiceInstallContext {
|
|
@@ -27,7 +26,7 @@ export interface ServiceInstallContext {
|
|
|
27
26
|
export interface ServiceActionRouteConfig {
|
|
28
27
|
method: "GET" | "POST";
|
|
29
28
|
path: string;
|
|
30
|
-
auth?: Array<"user" | "
|
|
29
|
+
auth?: Array<"user" | "admin">;
|
|
31
30
|
/**
|
|
32
31
|
* 是否公开访问。
|
|
33
32
|
*
|
|
@@ -49,7 +48,7 @@ export interface ServiceNativeRouteConfig {
|
|
|
49
48
|
* - native HTTP route 不进入 action/hook 管线,但仍可声明 route 级鉴权
|
|
50
49
|
*/
|
|
51
50
|
public?: boolean;
|
|
52
|
-
auth?: Array<"user" | "
|
|
51
|
+
auth?: Array<"user" | "admin">;
|
|
53
52
|
handler: {
|
|
54
53
|
/**
|
|
55
54
|
* 原生 HTTP 请求处理器。
|
|
@@ -63,8 +62,6 @@ export interface ServiceNativeRouteConfig {
|
|
|
63
62
|
export interface ServiceRouteContext {
|
|
64
63
|
/** 当前 user_token 解析出的用户;免登录或 admin 请求时可能为空 */
|
|
65
64
|
user?: RuntimeUser;
|
|
66
|
-
/** 当前 bureau_token 解析出的 Bureau。 */
|
|
67
|
-
bureau?: RuntimeBureau;
|
|
68
65
|
/** 当前 user_token 对应的 city;免登录或 admin 请求时可能为空 */
|
|
69
66
|
city?: {
|
|
70
67
|
city_id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installable-service.d.ts","sourceRoot":"","sources":["../../src/service/installable-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnI,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"installable-service.d.ts","sourceRoot":"","sources":["../../src/service/installable-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,6 @@ export class InstallableService extends Service {
|
|
|
50
50
|
return self.action(actionId, async (svcCtx) => {
|
|
51
51
|
return await config.handler({
|
|
52
52
|
user: svcCtx.user,
|
|
53
|
-
bureau: svcCtx.bureau,
|
|
54
53
|
city: svcCtx.city,
|
|
55
54
|
request: svcCtx.request ?? new Request("http://local"),
|
|
56
55
|
transport: svcCtx.transport,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installable-service.js","sourceRoot":"","sources":["../../src/service/installable-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAA8F,MAAM,cAAc,CAAC;AAEnI,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"installable-service.js","sourceRoot":"","sources":["../../src/service/installable-service.ts"],"names":[],"mappings":"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"}
|
package/bin/service/service.d.ts
CHANGED
|
@@ -12,7 +12,6 @@ import { Action, type ActionFn } from "./action.js";
|
|
|
12
12
|
import type { CityTableApi } from "../store/table-api.js";
|
|
13
13
|
import type { Database, DbClient } from "../store/db.js";
|
|
14
14
|
import type { RuntimeUser } from "../federation/auth/types.js";
|
|
15
|
-
import type { RuntimeBureau } from "../types/Bureau.js";
|
|
16
15
|
import type { Authenticator } from "../federation/auth/authenticator.js";
|
|
17
16
|
import type { EnvProvider } from "../federation/runtime.js";
|
|
18
17
|
import type { CityStore } from "./cities/city-store.js";
|
|
@@ -23,7 +22,7 @@ import type { FederationStorage } from "../federation/storage.js";
|
|
|
23
22
|
import type { FederationRequestTransport } from "../federation/types.js";
|
|
24
23
|
import type { BureauTokenStore } from "../federation/auth/bureau-token-store.js";
|
|
25
24
|
/** 当前请求最终解析出的身份。 */
|
|
26
|
-
export type RouteIdentity = "guest" | "user" | "
|
|
25
|
+
export type RouteIdentity = "guest" | "user" | "admin";
|
|
27
26
|
/** Action 可声明的可访问身份。空数组表示免登录。 */
|
|
28
27
|
export type RouteAuth = Array<Exclude<RouteIdentity, "guest">>;
|
|
29
28
|
export interface Context {
|
|
@@ -41,8 +40,6 @@ export interface Context {
|
|
|
41
40
|
output?: unknown;
|
|
42
41
|
/** 当前用户(user_token 解析成功时可用) */
|
|
43
42
|
user?: RuntimeUser;
|
|
44
|
-
/** 当前 Bureau(bureau_token 解析成功时可用)。 */
|
|
45
|
-
bureau?: RuntimeBureau;
|
|
46
43
|
/** 当前请求身份 */
|
|
47
44
|
identity?: {
|
|
48
45
|
kind: RouteIdentity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/service/service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/service/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/service/service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/service/service.ts"],"names":[],"mappings":"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"}
|
package/bin/store/db.d.ts
CHANGED
|
@@ -21,6 +21,16 @@ export interface DbClient {
|
|
|
21
21
|
/** 关闭连接(异步,可选) */
|
|
22
22
|
end?(): Promise<void>;
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* 支持冲突忽略语义的 Drizzle insert query。
|
|
26
|
+
*
|
|
27
|
+
* SQLite、D1 与 Postgres 的 insert builder 都实现该公共子集,供系统初始化执行
|
|
28
|
+
* 原子的“仅在不存在时插入”,避免跨 Worker isolate 的查询后写入竞态。
|
|
29
|
+
*/
|
|
30
|
+
interface InsertQuery extends PromiseLike<unknown> {
|
|
31
|
+
/** 唯一约束冲突时不写入,也不抛出冲突错误。 */
|
|
32
|
+
onConflictDoNothing(): PromiseLike<unknown>;
|
|
33
|
+
}
|
|
24
34
|
/**
|
|
25
35
|
* Drizzle select / insert / update / delete 的公共子集。
|
|
26
36
|
*
|
|
@@ -35,7 +45,7 @@ export interface Database {
|
|
|
35
45
|
};
|
|
36
46
|
};
|
|
37
47
|
insert(t: unknown): {
|
|
38
|
-
values(v: Record<string, unknown> | Record<string, unknown>[]):
|
|
48
|
+
values(v: Record<string, unknown> | Record<string, unknown>[]): InsertQuery;
|
|
39
49
|
};
|
|
40
50
|
update(t: unknown): {
|
|
41
51
|
set(v: Record<string, unknown>): {
|
|
@@ -58,4 +68,5 @@ export interface Database {
|
|
|
58
68
|
export declare function executeDDL(db: {
|
|
59
69
|
$client: DbClient;
|
|
60
70
|
}, ddl: string): Promise<void>;
|
|
71
|
+
export {};
|
|
61
72
|
//# sourceMappingURL=db.d.ts.map
|
package/bin/store/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAMvC;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,6DAA6D;IAC7D,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,wBAAwB;IACxB,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,eAAe;IACf,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,kBAAkB;IAClB,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAMvC;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,6DAA6D;IAC7D,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,wBAAwB;IACxB,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,eAAe;IACf,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,kBAAkB;IAClB,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAYD;;;;;GAKG;AACH,UAAU,WAAY,SAAQ,WAAW,CAAC,OAAO,CAAC;IAChD,2BAA2B;IAC3B,mBAAmB,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;CAC7C;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,IAAI;QAAE,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG;YAAE,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC;IACvI,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,WAAW,CAAA;KAAE,CAAC;IACpG,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG;QAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;YAAE,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC;IACzG,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CACrE;AAMD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAItF"}
|
package/bin/store/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgEH,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAyB,EAAE,GAAW;IACrE,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IACrB,IAAI,OAAO,CAAC,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACjE,IAAI,OAAO,CAAC,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;QAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AAC/D,CAAC"}
|
package/bin/store/table-api.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export interface CityTableApi<TRow = Record<string, unknown>> {
|
|
|
16
16
|
select(where?: Partial<TRow>): Promise<TRow[]>;
|
|
17
17
|
/** 插入一行或多行数据 */
|
|
18
18
|
insert(values: Partial<TRow> | Partial<TRow>[]): Promise<void>;
|
|
19
|
+
/** 原子插入一行;命中任意唯一约束时保留数据库现有记录。 */
|
|
20
|
+
insert_if_absent(value: Partial<TRow>): Promise<void>;
|
|
19
21
|
/** 按 where 等值条件更新数据 */
|
|
20
22
|
update(input: {
|
|
21
23
|
where: Partial<TRow>;
|
|
@@ -31,6 +33,7 @@ export declare class TableApi implements CityTableApi {
|
|
|
31
33
|
constructor(db: Database, schema: AnySQLiteTable | AnyPgTable);
|
|
32
34
|
select(where?: Record<string, unknown>): Promise<Record<string, unknown>[]>;
|
|
33
35
|
insert(values: Record<string, unknown> | Record<string, unknown>[]): Promise<void>;
|
|
36
|
+
insert_if_absent(value: Record<string, unknown>): Promise<void>;
|
|
34
37
|
update(input: {
|
|
35
38
|
where: Record<string, unknown>;
|
|
36
39
|
values: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-api.d.ts","sourceRoot":"","sources":["../../src/store/table-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQ9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOxC,MAAM,WAAW,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC;IAC7C,YAAY;IACZ,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,gBAAgB;IAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,uBAAuB;IACvB,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF,uBAAuB;IACvB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C;AAMD,qBAAa,QAAS,YAAW,YAAY;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;gBAElB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU;IAMvD,MAAM,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAS/E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlF,MAAM,CAAC,KAAK,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWb,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAM9D;AA0BD,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,CA4BlF"}
|
|
1
|
+
{"version":3,"file":"table-api.d.ts","sourceRoot":"","sources":["../../src/store/table-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQ9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOxC,MAAM,WAAW,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC;IAC7C,YAAY;IACZ,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,gBAAgB;IAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,iCAAiC;IACjC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,uBAAuB;IACvB,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF,uBAAuB;IACvB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C;AAMD,qBAAa,QAAS,YAAW,YAAY;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;gBAElB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU;IAMvD,MAAM,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAS/E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlF,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/D,MAAM,CAAC,KAAK,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWb,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAM9D;AA0BD,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,CA4BlF"}
|
package/bin/store/table-api.js
CHANGED
|
@@ -31,6 +31,15 @@ export class TableApi {
|
|
|
31
31
|
throw new TypeError("insert() values cannot be empty");
|
|
32
32
|
await this.db.insert(this.schema).values(rows);
|
|
33
33
|
}
|
|
34
|
+
async insert_if_absent(value) {
|
|
35
|
+
if (Object.keys(value).length === 0) {
|
|
36
|
+
throw new TypeError("insert_if_absent() value cannot be empty");
|
|
37
|
+
}
|
|
38
|
+
await this.db
|
|
39
|
+
.insert(this.schema)
|
|
40
|
+
.values(value)
|
|
41
|
+
.onConflictDoNothing();
|
|
42
|
+
}
|
|
34
43
|
async update(input) {
|
|
35
44
|
if (Object.keys(input.values).length === 0) {
|
|
36
45
|
throw new TypeError("update() values cannot be empty");
|