@visiblebase/core 0.2.0 → 0.2.2
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/bin/core/base/base.d.ts +8 -40
- package/bin/core/base/base.d.ts.map +1 -1
- package/bin/core/base/base.js +154 -96
- package/bin/core/base/base.js.map +1 -1
- package/bin/core/runtime.d.ts +10 -0
- package/bin/core/runtime.d.ts.map +1 -1
- package/bin/index.d.ts +5 -14
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +5 -14
- package/bin/index.js.map +1 -1
- package/bin/service/action.d.ts +44 -0
- package/bin/service/action.d.ts.map +1 -0
- package/bin/service/action.js +48 -0
- package/bin/service/action.js.map +1 -0
- package/bin/service/ai/ai-service.d.ts +21 -57
- package/bin/service/ai/ai-service.d.ts.map +1 -1
- package/bin/service/ai/ai-service.js +107 -105
- package/bin/service/ai/ai-service.js.map +1 -1
- package/bin/service/ai/provider.d.ts +24 -58
- package/bin/service/ai/provider.d.ts.map +1 -1
- package/bin/service/ai/provider.js +20 -41
- package/bin/service/ai/provider.js.map +1 -1
- package/bin/service/ai/types.d.ts +39 -35
- package/bin/service/ai/types.d.ts.map +1 -1
- package/bin/service/ai/types.js +1 -1
- package/bin/service/env/env-service.d.ts +0 -4
- package/bin/service/env/env-service.d.ts.map +1 -1
- package/bin/service/env/env-service.js +12 -22
- package/bin/service/env/env-service.js.map +1 -1
- package/bin/service/hook.d.ts +8 -5
- package/bin/service/hook.d.ts.map +1 -1
- package/bin/service/hook.js +11 -14
- package/bin/service/hook.js.map +1 -1
- package/bin/service/plugin.d.ts +12 -94
- package/bin/service/plugin.d.ts.map +1 -1
- package/bin/service/plugin.js +22 -59
- package/bin/service/plugin.js.map +1 -1
- package/bin/service/products/products-service.d.ts +0 -5
- package/bin/service/products/products-service.d.ts.map +1 -1
- package/bin/service/products/products-service.js +14 -20
- package/bin/service/products/products-service.js.map +1 -1
- package/bin/service/service.d.ts +59 -64
- package/bin/service/service.d.ts.map +1 -1
- package/bin/service/service.js +34 -80
- package/bin/service/service.js.map +1 -1
- package/bin/service/types.d.ts +2 -8
- package/bin/service/types.d.ts.map +1 -1
- package/bin/store/db.d.ts +5 -4
- package/bin/store/db.d.ts.map +1 -1
- package/bin/store/db.js +3 -2
- package/bin/store/db.js.map +1 -1
- package/package.json +8 -9
package/bin/core/base/base.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Base Runtime 主模块。
|
|
3
3
|
*
|
|
4
|
-
* Base
|
|
4
|
+
* Base 是运行时容器,负责:Service 生命周期、鉴权、HTTP 桥接。
|
|
5
5
|
* 不知道任何具体 Service 的实现,所有 Service 通过 _onInit() 自初始化。
|
|
6
6
|
*
|
|
7
|
-
* 数据库连接、环境变量存储等运行时特定逻辑由 Runtime 适配器注入。
|
|
8
|
-
*
|
|
9
7
|
* 使用方式:
|
|
10
8
|
* ```ts
|
|
11
9
|
* import { Base } from "@visiblebase/core";
|
|
@@ -13,7 +11,6 @@
|
|
|
13
11
|
*
|
|
14
12
|
* const base = new Base({ runtime: node({ database: "sqlite:./data.sqlite" }) });
|
|
15
13
|
* base.use(new AIService());
|
|
16
|
-
* // 路由始终是标准 Hono app
|
|
17
14
|
* serve({ fetch: base.router().fetch, port: 3000 });
|
|
18
15
|
* ```
|
|
19
16
|
*/
|
|
@@ -33,12 +30,6 @@ declare module "hono" {
|
|
|
33
30
|
};
|
|
34
31
|
}
|
|
35
32
|
}
|
|
36
|
-
/**
|
|
37
|
-
* VisibleBase 运行时容器。
|
|
38
|
-
*
|
|
39
|
-
* 接收 Service 注册、构建 Hono 路由、管理初始化生命周期。
|
|
40
|
-
* 数据库和 env 通过 Runtime 适配器注入,不依赖任何特定运行时。
|
|
41
|
-
*/
|
|
42
33
|
export declare class Base {
|
|
43
34
|
private readonly runtime;
|
|
44
35
|
private readonly services;
|
|
@@ -49,43 +40,13 @@ export declare class Base {
|
|
|
49
40
|
private hono?;
|
|
50
41
|
private authenticator?;
|
|
51
42
|
constructor(options: BaseOptions);
|
|
52
|
-
/**
|
|
53
|
-
* 注册一个 Service。
|
|
54
|
-
*
|
|
55
|
-
* Service 在 Base 初始化时自动获得数据库、鉴权器、env 等基础设施。
|
|
56
|
-
*/
|
|
57
43
|
use(svc: Service | BasePlugin): this;
|
|
58
|
-
/** 获取指定 ID 的 Service */
|
|
59
44
|
getService(id: string): Service | undefined;
|
|
60
|
-
/** 获取所有已注册的 Service */
|
|
61
45
|
getServices(): Service[];
|
|
62
46
|
getAuthenticator(): Promise<Authenticator>;
|
|
63
|
-
/**
|
|
64
|
-
* 获取指定名称的数据库表 API。
|
|
65
|
-
*
|
|
66
|
-
* @param name - 表名(格式为 "service_id.table_name" 或内置表名)
|
|
67
|
-
*/
|
|
68
47
|
table<TRow extends Record<string, unknown> = Record<string, unknown>>(name: string): Promise<BaseTableApi<TRow>>;
|
|
69
|
-
/**
|
|
70
|
-
* 获取 Hono 路由实例(需先完成初始化)。
|
|
71
|
-
*
|
|
72
|
-
* 路由可以直接挂载到任何支持 fetch 的 HTTP 服务器:
|
|
73
|
-
* ```ts
|
|
74
|
-
* // Node.js
|
|
75
|
-
* serve({ fetch: base.router().fetch, port: 3000 });
|
|
76
|
-
*
|
|
77
|
-
* // Cloudflare Workers
|
|
78
|
-
* export default { fetch: base.router().fetch };
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
48
|
router(): Hono;
|
|
82
|
-
/**
|
|
83
|
-
* 直接处理一个 Request(用于 Serverless 场景)。
|
|
84
|
-
*/
|
|
85
49
|
handleRequest(request: Request): Promise<Response>;
|
|
86
|
-
/**
|
|
87
|
-
* 健康检查。
|
|
88
|
-
*/
|
|
89
50
|
health(): Promise<BaseHealthStatus>;
|
|
90
51
|
private initialize;
|
|
91
52
|
private collectServiceSchemas;
|
|
@@ -93,6 +54,13 @@ export declare class Base {
|
|
|
93
54
|
private ensureReady;
|
|
94
55
|
private requireReadySync;
|
|
95
56
|
private requireReady;
|
|
57
|
+
/**
|
|
58
|
+
* 收集插件注册的全局 hook。
|
|
59
|
+
*
|
|
60
|
+
* Service.hook 只作用于当前 Service;Plugin.globalHook 用于 usage、
|
|
61
|
+
* billing 等需要观察所有用户侧调用的横切能力。
|
|
62
|
+
*/
|
|
63
|
+
private globalPluginHooks;
|
|
96
64
|
}
|
|
97
65
|
export { Base as VisibleBase };
|
|
98
66
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/core/base/base.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/core/base/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,OAAO,EAAgB,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAU,kBAAkB;QAC1B,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,OAAO,CAAC,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAClD;CACF;AAED,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IAEvD,OAAO,CAAC,QAAQ,CAAC,CAAuC;IACxD,OAAO,CAAC,MAAM,CAAC,CAAoD;IACnE,OAAO,CAAC,QAAQ,CAAC,CAA4B;IAC7C,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,IAAI,CAAC,CAAO;IACpB,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAE1B,OAAO,EAAE,WAAW;IAWhC,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI;IAMpC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C,WAAW,IAAI,OAAO,EAAE;IAQlB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAS1C,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;IAW9B,MAAM,IAAI,IAAI;IAKR,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKlD,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;YAgB3B,UAAU;IA8CxB,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,SAAS;YAqIH,WAAW;IAKzB,OAAO,CAAC,gBAAgB;YAIV,YAAY;IAM1B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CAK1B;AAED,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC"}
|
package/bin/core/base/base.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Base Runtime 主模块。
|
|
3
3
|
*
|
|
4
|
-
* Base
|
|
4
|
+
* Base 是运行时容器,负责:Service 生命周期、鉴权、HTTP 桥接。
|
|
5
5
|
* 不知道任何具体 Service 的实现,所有 Service 通过 _onInit() 自初始化。
|
|
6
6
|
*
|
|
7
|
-
* 数据库连接、环境变量存储等运行时特定逻辑由 Runtime 适配器注入。
|
|
8
|
-
*
|
|
9
7
|
* 使用方式:
|
|
10
8
|
* ```ts
|
|
11
9
|
* import { Base } from "@visiblebase/core";
|
|
@@ -13,26 +11,15 @@
|
|
|
13
11
|
*
|
|
14
12
|
* const base = new Base({ runtime: node({ database: "sqlite:./data.sqlite" }) });
|
|
15
13
|
* base.use(new AIService());
|
|
16
|
-
* // 路由始终是标准 Hono app
|
|
17
14
|
* serve({ fetch: base.router().fetch, port: 3000 });
|
|
18
15
|
* ```
|
|
19
16
|
*/
|
|
20
17
|
import { Hono } from "hono";
|
|
21
18
|
import { executeDDL } from "../../store/db.js";
|
|
22
19
|
import { TableApi, buildCreateUserTableSQL } from "../../store/table-api.js";
|
|
23
|
-
import {
|
|
24
|
-
import { asPlugin } from "../../service/plugin.js";
|
|
20
|
+
import { asPlugin, Plugin } from "../../service/plugin.js";
|
|
25
21
|
import { Authenticator } from "../auth/authenticator.js";
|
|
26
22
|
import { randomSecret, bearerToken } from "../../utils/helpers.js";
|
|
27
|
-
// ===========================================================================
|
|
28
|
-
// Base
|
|
29
|
-
// ===========================================================================
|
|
30
|
-
/**
|
|
31
|
-
* VisibleBase 运行时容器。
|
|
32
|
-
*
|
|
33
|
-
* 接收 Service 注册、构建 Hono 路由、管理初始化生命周期。
|
|
34
|
-
* 数据库和 env 通过 Runtime 适配器注入,不依赖任何特定运行时。
|
|
35
|
-
*/
|
|
36
23
|
export class Base {
|
|
37
24
|
runtime;
|
|
38
25
|
services = new Map();
|
|
@@ -51,21 +38,14 @@ export class Base {
|
|
|
51
38
|
// ===========================================================================
|
|
52
39
|
// Service 注册
|
|
53
40
|
// ===========================================================================
|
|
54
|
-
/**
|
|
55
|
-
* 注册一个 Service。
|
|
56
|
-
*
|
|
57
|
-
* Service 在 Base 初始化时自动获得数据库、鉴权器、env 等基础设施。
|
|
58
|
-
*/
|
|
59
41
|
use(svc) {
|
|
60
42
|
const service = "install" in svc && !("get" in svc) ? asPlugin(svc) : svc;
|
|
61
43
|
this.services.set(service.id, service);
|
|
62
44
|
return this;
|
|
63
45
|
}
|
|
64
|
-
/** 获取指定 ID 的 Service */
|
|
65
46
|
getService(id) {
|
|
66
47
|
return this.services.get(id);
|
|
67
48
|
}
|
|
68
|
-
/** 获取所有已注册的 Service */
|
|
69
49
|
getServices() {
|
|
70
50
|
return [...this.services.values()];
|
|
71
51
|
}
|
|
@@ -79,11 +59,6 @@ export class Base {
|
|
|
79
59
|
// ===========================================================================
|
|
80
60
|
// 表操作
|
|
81
61
|
// ===========================================================================
|
|
82
|
-
/**
|
|
83
|
-
* 获取指定名称的数据库表 API。
|
|
84
|
-
*
|
|
85
|
-
* @param name - 表名(格式为 "service_id.table_name" 或内置表名)
|
|
86
|
-
*/
|
|
87
62
|
async table(name) {
|
|
88
63
|
await this.ensureReady();
|
|
89
64
|
const api = this.tableMap.get(name);
|
|
@@ -94,32 +69,14 @@ export class Base {
|
|
|
94
69
|
// ===========================================================================
|
|
95
70
|
// HTTP
|
|
96
71
|
// ===========================================================================
|
|
97
|
-
/**
|
|
98
|
-
* 获取 Hono 路由实例(需先完成初始化)。
|
|
99
|
-
*
|
|
100
|
-
* 路由可以直接挂载到任何支持 fetch 的 HTTP 服务器:
|
|
101
|
-
* ```ts
|
|
102
|
-
* // Node.js
|
|
103
|
-
* serve({ fetch: base.router().fetch, port: 3000 });
|
|
104
|
-
*
|
|
105
|
-
* // Cloudflare Workers
|
|
106
|
-
* export default { fetch: base.router().fetch };
|
|
107
|
-
* ```
|
|
108
|
-
*/
|
|
109
72
|
router() {
|
|
110
73
|
this.requireReadySync();
|
|
111
74
|
return this.hono;
|
|
112
75
|
}
|
|
113
|
-
/**
|
|
114
|
-
* 直接处理一个 Request(用于 Serverless 场景)。
|
|
115
|
-
*/
|
|
116
76
|
async handleRequest(request) {
|
|
117
77
|
await this.ensureReady();
|
|
118
78
|
return this.hono.fetch(request);
|
|
119
79
|
}
|
|
120
|
-
/**
|
|
121
|
-
* 健康检查。
|
|
122
|
-
*/
|
|
123
80
|
async health() {
|
|
124
81
|
await this.ensureReady();
|
|
125
82
|
const services = this.getServices();
|
|
@@ -132,57 +89,51 @@ export class Base {
|
|
|
132
89
|
};
|
|
133
90
|
}
|
|
134
91
|
// ===========================================================================
|
|
135
|
-
//
|
|
92
|
+
// 初始化
|
|
136
93
|
// ===========================================================================
|
|
137
94
|
async initialize() {
|
|
138
95
|
const { database, client, env, builtinTables } = this.runtime;
|
|
139
96
|
this.database = database;
|
|
140
97
|
this.client = { $client: client };
|
|
141
|
-
// 1. 收集所有 Service 的 tables + 内置表
|
|
142
98
|
const userSchema = this.collectServiceSchemas();
|
|
143
|
-
// 2. 创建 TableApi(内置表 + 用户表)
|
|
144
99
|
this.tableMap = new Map();
|
|
145
|
-
// 内置表
|
|
146
100
|
this.tableMap.set("products", new TableApi(database, builtinTables.products));
|
|
147
101
|
this.tableMap.set("env", new TableApi(database, builtinTables.env));
|
|
148
|
-
// 用户表(scoped: "service_id.table_name")
|
|
149
102
|
for (const [name, table] of Object.entries(userSchema)) {
|
|
150
103
|
this.tableMap.set(name, new TableApi(database, table));
|
|
151
104
|
}
|
|
152
|
-
// 3. 执行 DDL
|
|
153
105
|
for (const t of this.tableMap.values()) {
|
|
154
106
|
const ddl = buildCreateUserTableSQL(t.schema);
|
|
155
107
|
if (ddl)
|
|
156
108
|
await executeDDL(this.client, ddl);
|
|
157
109
|
}
|
|
158
|
-
// 4. Bootstrap 默认密钥(如果 EnvProvider 支持持久化)
|
|
159
|
-
await bootstrapDefaultKeys(env);
|
|
160
|
-
// 5. 关联 EnvStore 到 EnvProvider(数据库中的值优先级更高)
|
|
161
110
|
if (env.attachStore) {
|
|
162
111
|
const envStoreModule = await import("../../service/env/env-store.js");
|
|
163
112
|
const envTable = this.tableMap.get("env");
|
|
164
113
|
const store = new envStoreModule.EnvStore(envTable);
|
|
165
114
|
await env.attachStore(store);
|
|
166
115
|
}
|
|
167
|
-
//
|
|
116
|
+
// bootstrap 必须在 attachStore 之后,确保 key 持久化到 D1
|
|
117
|
+
await bootstrapDefaultKeys(env, this.runtime.raw);
|
|
168
118
|
this.authenticator = new Authenticator(env, () => this.requireReady());
|
|
169
|
-
// 7. 设置 Service 基础设施 + 调用 _onInit
|
|
170
119
|
for (const svc of this.services.values()) {
|
|
171
120
|
svc._db = database;
|
|
172
121
|
svc._client = this.client;
|
|
173
122
|
svc._authenticator = this.authenticator;
|
|
174
123
|
svc._env = env;
|
|
124
|
+
svc._raw = this.runtime.raw;
|
|
125
|
+
svc._baseURL = this.runtime.baseURL;
|
|
175
126
|
await svc._onInit();
|
|
176
127
|
}
|
|
177
|
-
// 8. 构建 Hono 路由
|
|
178
128
|
this.hono = this.buildHono();
|
|
179
129
|
}
|
|
180
130
|
collectServiceSchemas() {
|
|
181
131
|
const collected = {};
|
|
182
132
|
for (const svc of this.services.values()) {
|
|
183
|
-
|
|
133
|
+
const tables = svc.tables ?? svc.schema;
|
|
134
|
+
if (!tables)
|
|
184
135
|
continue;
|
|
185
|
-
for (const [name, table] of Object.entries(
|
|
136
|
+
for (const [name, table] of Object.entries(tables)) {
|
|
186
137
|
const scopedName = `${svc.id}.${name}`;
|
|
187
138
|
if (collected[scopedName]) {
|
|
188
139
|
throw new Error(`Duplicate schema table "${scopedName}" from services: ${svc.id}`);
|
|
@@ -192,50 +143,115 @@ export class Base {
|
|
|
192
143
|
}
|
|
193
144
|
return collected;
|
|
194
145
|
}
|
|
146
|
+
// ===========================================================================
|
|
147
|
+
// Hono 路由构建 — HTTP 桥接内化
|
|
148
|
+
// ===========================================================================
|
|
195
149
|
buildHono() {
|
|
196
150
|
const app = new Hono();
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
});
|
|
206
|
-
});
|
|
151
|
+
// 健康检查
|
|
152
|
+
app.get("/health", (c) => c.json({
|
|
153
|
+
ok: true, name: "visiblebase",
|
|
154
|
+
checked_at: new Date().toISOString(),
|
|
155
|
+
services: this.getServices().map((s) => s.id),
|
|
156
|
+
service_list: this.getServices().map((s) => ({ id: s.id, name: s.name })),
|
|
157
|
+
}));
|
|
158
|
+
// Admin 鉴权中间件(硬拦)
|
|
207
159
|
app.use("/api/admin/*", async (c, next) => {
|
|
208
160
|
await this.authenticator.authenticate(c.req.raw, "admin");
|
|
209
161
|
await next();
|
|
210
162
|
});
|
|
163
|
+
// User 鉴权中间件(提取,不拦)
|
|
211
164
|
app.use("/v1/*", async (c, next) => {
|
|
212
165
|
const token = bearerToken(c.req.raw);
|
|
213
166
|
if (token) {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
167
|
+
try {
|
|
168
|
+
const result = await this.authenticator.authenticate(c.req.raw, "user");
|
|
169
|
+
c.set("user", result.user);
|
|
170
|
+
c.set("product", result.product);
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
// token 无效(可能是 admin key 或其他),不设 user/product,放行
|
|
174
|
+
}
|
|
217
175
|
}
|
|
218
176
|
await next();
|
|
219
177
|
});
|
|
220
|
-
|
|
178
|
+
// Service 列表
|
|
179
|
+
app.get("/v1/services", (c) => c.json({
|
|
180
|
+
items: this.getServices().map((s) => ({
|
|
181
|
+
id: s.id,
|
|
182
|
+
name: s.name,
|
|
183
|
+
env: s.env ?? [],
|
|
184
|
+
}))
|
|
185
|
+
}));
|
|
186
|
+
// 为每个 Service 的每个 Action 注册路由
|
|
221
187
|
for (const svc of this.services.values()) {
|
|
222
|
-
for (const
|
|
223
|
-
const
|
|
224
|
-
|
|
188
|
+
for (const def of svc._listActionDefs()) {
|
|
189
|
+
const action = def.action;
|
|
190
|
+
let path;
|
|
191
|
+
if (def.auth === "admin") {
|
|
192
|
+
path = `/api/admin/services/${encodeURIComponent(svc.id)}/${action.id}`;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
path = `/v1/s/${encodeURIComponent(svc.id)}/${action.id}`;
|
|
196
|
+
}
|
|
197
|
+
const register = def.method === "GET" ? app.get.bind(app) : app.post.bind(app);
|
|
198
|
+
register(path, async (c) => {
|
|
199
|
+
// 鉴权强制
|
|
200
|
+
if (def.auth === "user" && !c.get("user")) {
|
|
201
|
+
return c.json({ error: { message: "Authentication required", type: "authentication_error" } }, 401);
|
|
202
|
+
}
|
|
203
|
+
let rawBody;
|
|
204
|
+
const input = def.method === "GET"
|
|
205
|
+
? searchParamsToObject(new URL(c.req.raw.url).searchParams)
|
|
206
|
+
: parseRequestInput(rawBody = await c.req.text().catch(() => ""));
|
|
207
|
+
const db = {};
|
|
208
|
+
if (svc.tables) {
|
|
209
|
+
for (const name of Object.keys(svc.tables)) {
|
|
210
|
+
db[name] = this.tableMap.get(`${svc.id}.${name}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
225
213
|
const ctx = {
|
|
214
|
+
input,
|
|
226
215
|
request: c.req.raw,
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
route,
|
|
216
|
+
raw_body: rawBody,
|
|
217
|
+
db,
|
|
230
218
|
user: c.get("user"),
|
|
231
219
|
product: c.get("product"),
|
|
232
|
-
json: () => c.req.json(),
|
|
233
|
-
text: () => c.req.text(),
|
|
234
|
-
jsonResponse: (body, status) => c.json(body, status),
|
|
235
|
-
table: async (name) => this.tableMap.get(`${svc.id}.${name}`),
|
|
236
220
|
env: (key) => this.runtime.env.get(key),
|
|
221
|
+
service: { id: svc.id, name: svc.name },
|
|
222
|
+
action: { id: action.id },
|
|
223
|
+
started_at: new Date(),
|
|
237
224
|
};
|
|
238
|
-
|
|
225
|
+
try {
|
|
226
|
+
for (const hook of this.globalPluginHooks()) {
|
|
227
|
+
await hook.runBefore(ctx);
|
|
228
|
+
}
|
|
229
|
+
await action.hook.runBefore(ctx);
|
|
230
|
+
await svc.hook.runBefore(ctx);
|
|
231
|
+
const output = await action.run(ctx);
|
|
232
|
+
ctx.output = output;
|
|
233
|
+
ctx.ended_at = new Date();
|
|
234
|
+
await svc.hook.runAfter(ctx);
|
|
235
|
+
await action.hook.runAfter(ctx);
|
|
236
|
+
for (const hook of this.globalPluginHooks()) {
|
|
237
|
+
await hook.runAfter(ctx);
|
|
238
|
+
}
|
|
239
|
+
if (output instanceof Response)
|
|
240
|
+
return output;
|
|
241
|
+
return c.json(output, 200);
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
ctx.ended_at = new Date();
|
|
245
|
+
ctx.error = error instanceof Error ? error : new Error(String(error));
|
|
246
|
+
await svc.hook.runOnError(ctx);
|
|
247
|
+
await action.hook.runOnError(ctx);
|
|
248
|
+
for (const hook of this.globalPluginHooks()) {
|
|
249
|
+
await hook.runOnError(ctx);
|
|
250
|
+
}
|
|
251
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
252
|
+
const status = error.statusCode ?? 500;
|
|
253
|
+
return c.json({ error: { message, type: "server_error" } }, status);
|
|
254
|
+
}
|
|
239
255
|
});
|
|
240
256
|
}
|
|
241
257
|
}
|
|
@@ -258,24 +274,66 @@ export class Base {
|
|
|
258
274
|
const products = this.services.get("products");
|
|
259
275
|
return { product: products?.store ?? { get: () => Promise.resolve(undefined) } };
|
|
260
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* 收集插件注册的全局 hook。
|
|
279
|
+
*
|
|
280
|
+
* Service.hook 只作用于当前 Service;Plugin.globalHook 用于 usage、
|
|
281
|
+
* billing 等需要观察所有用户侧调用的横切能力。
|
|
282
|
+
*/
|
|
283
|
+
globalPluginHooks() {
|
|
284
|
+
return [...this.services.values()]
|
|
285
|
+
.filter((svc) => svc instanceof Plugin)
|
|
286
|
+
.map((svc) => svc.globalHook);
|
|
287
|
+
}
|
|
261
288
|
}
|
|
262
289
|
export { Base as VisibleBase };
|
|
263
|
-
// ===========================================================================
|
|
264
|
-
// 默认密钥 Bootstrap
|
|
265
|
-
// ===========================================================================
|
|
266
290
|
/**
|
|
267
|
-
*
|
|
291
|
+
* 解析请求输入。
|
|
268
292
|
*
|
|
269
|
-
*
|
|
293
|
+
* Base 的 Action input 仍以 JSON object 为主;同时保留 raw body 给
|
|
294
|
+
* webhook 验签等需要原文的插件使用。
|
|
270
295
|
*/
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
296
|
+
function parseRequestInput(rawBody) {
|
|
297
|
+
if (!rawBody)
|
|
298
|
+
return {};
|
|
299
|
+
try {
|
|
300
|
+
const parsed = JSON.parse(rawBody);
|
|
301
|
+
return parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
302
|
+
? parsed
|
|
303
|
+
: {};
|
|
276
304
|
}
|
|
277
|
-
|
|
278
|
-
|
|
305
|
+
catch {
|
|
306
|
+
return {};
|
|
279
307
|
}
|
|
280
308
|
}
|
|
309
|
+
/**
|
|
310
|
+
* 将 URLSearchParams 转成普通对象。
|
|
311
|
+
*
|
|
312
|
+
* 不使用 searchParams.entries(),避免部分 TypeScript lib 配置缺少
|
|
313
|
+
* DOM.Iterable 时在 CI 中报类型错误。
|
|
314
|
+
*/
|
|
315
|
+
function searchParamsToObject(searchParams) {
|
|
316
|
+
const result = {};
|
|
317
|
+
searchParams.forEach((value, key) => {
|
|
318
|
+
result[key] = value;
|
|
319
|
+
});
|
|
320
|
+
return result;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* 确保系统必需的 env key 存在(admin key、token signing key)。
|
|
324
|
+
* 直接写 D1 + 同步内存缓存。
|
|
325
|
+
*/
|
|
326
|
+
async function bootstrapDefaultKeys(env, db) {
|
|
327
|
+
const now = new Date().toISOString();
|
|
328
|
+
const adminKey = env.get("VISIBLEBASE_ADMIN_SECRET_KEY") || `admin_${randomSecret()}`;
|
|
329
|
+
await db.prepare("INSERT OR REPLACE INTO visiblebase_env (key, value, created_at, updated_at) VALUES (?, ?, ?, ?)")
|
|
330
|
+
.bind("VISIBLEBASE_ADMIN_SECRET_KEY", adminKey, now, now).run();
|
|
331
|
+
if (!env.get("VISIBLEBASE_ADMIN_SECRET_KEY"))
|
|
332
|
+
await env.upsert({ key: "VISIBLEBASE_ADMIN_SECRET_KEY", value: adminKey });
|
|
333
|
+
const tokenKey = env.get("VISIBLEBASE_TOKEN_SIGNING_KEY") || `sign_${randomSecret()}`;
|
|
334
|
+
await db.prepare("INSERT OR REPLACE INTO visiblebase_env (key, value, created_at, updated_at) VALUES (?, ?, ?, ?)")
|
|
335
|
+
.bind("VISIBLEBASE_TOKEN_SIGNING_KEY", tokenKey, now, now).run();
|
|
336
|
+
if (!env.get("VISIBLEBASE_TOKEN_SIGNING_KEY"))
|
|
337
|
+
await env.upsert({ key: "VISIBLEBASE_TOKEN_SIGNING_KEY", value: tokenKey });
|
|
338
|
+
}
|
|
281
339
|
//# sourceMappingURL=base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/core/base/base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/core/base/base.ts"],"names":[],"mappings":"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"}
|
package/bin/core/runtime.d.ts
CHANGED
|
@@ -108,5 +108,15 @@ export interface Runtime {
|
|
|
108
108
|
* 适配器根据数据库类型提供正确的 Drizzle 表定义。
|
|
109
109
|
*/
|
|
110
110
|
builtinTables: BuiltinTables;
|
|
111
|
+
/**
|
|
112
|
+
* 原始数据库实例(better-sqlite3 Database / D1Database 等)。
|
|
113
|
+
* 供 better-auth 等第三方库直接使用。
|
|
114
|
+
*/
|
|
115
|
+
raw?: unknown;
|
|
116
|
+
/**
|
|
117
|
+
* 服务公网 URL(http://localhost:43127 或 https://xxx.workers.dev)。
|
|
118
|
+
* 用于 OAuth callback、邮件链接等。
|
|
119
|
+
*/
|
|
120
|
+
baseURL?: string;
|
|
111
121
|
}
|
|
112
122
|
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;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;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAErC;;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;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAMD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU;IACV,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY;IACZ,GAAG,EAAE,QAAQ,CAAC;CACf;AAMD;;;;;GAKG;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;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;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;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAErC;;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;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAMD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU;IACV,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY;IACZ,GAAG,EAAE,QAAQ,CAAC;CACf;AAMD;;;;;GAKG;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"}
|
package/bin/index.d.ts
CHANGED
|
@@ -1,27 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @visiblebase/core 公共入口。
|
|
3
|
-
*
|
|
4
|
-
* 按使用场景组织导出,方便开发者按需查找。
|
|
5
|
-
*
|
|
6
|
-
* 使用方式:
|
|
7
|
-
* ```ts
|
|
8
|
-
* import { Base, Service, AIService, type Context } from "@visiblebase/core";
|
|
9
|
-
* import { node } from "@visiblebase/node";
|
|
10
|
-
*
|
|
11
|
-
* const base = new Base({ runtime: node({ database: "sqlite:./data.sqlite" }) });
|
|
12
|
-
* ```
|
|
13
3
|
*/
|
|
14
4
|
export { Base, VisibleBase } from "./core/base/base.js";
|
|
15
5
|
export type { BaseOptions, BaseHealthStatus } from "./core/types.js";
|
|
16
6
|
export type { Runtime, EnvProvider, BuiltinTables, TableDef } from "./core/runtime.js";
|
|
17
7
|
export { Service } from "./service/service.js";
|
|
18
8
|
export { Plugin } from "./service/plugin.js";
|
|
19
|
-
export
|
|
20
|
-
export type {
|
|
9
|
+
export { Action } from "./service/action.js";
|
|
10
|
+
export type { Context, RouteAuth, EnvRequirement, } from "./service/service.js";
|
|
11
|
+
export type { ActionFn, HookFn, } from "./service/action.js";
|
|
12
|
+
export type { BasePlugin, BasePluginContext, PluginRouteContext, } from "./service/plugin.js";
|
|
21
13
|
export { AIService } from "./service/ai/ai-service.js";
|
|
22
14
|
export { Provider } from "./service/ai/provider.js";
|
|
23
|
-
export type { ModelConfig,
|
|
24
|
-
export type { HookFn, ServiceHandler, } from "./service/types.js";
|
|
15
|
+
export type { ModelConfig, ModelActions, PublicModel, } from "./service/ai/types.js";
|
|
25
16
|
export { TokenSigner } from "./core/auth/token-signer.js";
|
|
26
17
|
export type { RuntimeUser, CreateUserTokenInput, UserTokenPayload, UserTokenIssueResult, } from "./core/auth/types.js";
|
|
27
18
|
export { EnvService } from "./service/env/env-service.js";
|
package/bin/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMvF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,YAAY,EACV,OAAO,EACP,SAAS,EACT,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,QAAQ,EACR,MAAM,GACP,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAM9F,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAM5D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAM3D,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"}
|