@visiblebase/core 0.2.0 → 0.2.3

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 (57) hide show
  1. package/README.md +12 -11
  2. package/bin/core/auth/authenticator.d.ts +17 -6
  3. package/bin/core/auth/authenticator.d.ts.map +1 -1
  4. package/bin/core/auth/authenticator.js +49 -30
  5. package/bin/core/auth/authenticator.js.map +1 -1
  6. package/bin/core/base/base.d.ts +11 -40
  7. package/bin/core/base/base.d.ts.map +1 -1
  8. package/bin/core/base/base.js +146 -102
  9. package/bin/core/base/base.js.map +1 -1
  10. package/bin/core/runtime.d.ts +10 -0
  11. package/bin/core/runtime.d.ts.map +1 -1
  12. package/bin/index.d.ts +5 -14
  13. package/bin/index.d.ts.map +1 -1
  14. package/bin/index.js +5 -14
  15. package/bin/index.js.map +1 -1
  16. package/bin/service/action.d.ts +44 -0
  17. package/bin/service/action.d.ts.map +1 -0
  18. package/bin/service/action.js +48 -0
  19. package/bin/service/action.js.map +1 -0
  20. package/bin/service/ai/ai-service.d.ts +36 -60
  21. package/bin/service/ai/ai-service.d.ts.map +1 -1
  22. package/bin/service/ai/ai-service.js +194 -120
  23. package/bin/service/ai/ai-service.js.map +1 -1
  24. package/bin/service/ai/provider.d.ts +24 -58
  25. package/bin/service/ai/provider.d.ts.map +1 -1
  26. package/bin/service/ai/provider.js +20 -41
  27. package/bin/service/ai/provider.js.map +1 -1
  28. package/bin/service/ai/types.d.ts +57 -35
  29. package/bin/service/ai/types.d.ts.map +1 -1
  30. package/bin/service/ai/types.js +1 -1
  31. package/bin/service/env/env-service.d.ts +0 -4
  32. package/bin/service/env/env-service.d.ts.map +1 -1
  33. package/bin/service/env/env-service.js +15 -25
  34. package/bin/service/env/env-service.js.map +1 -1
  35. package/bin/service/hook.d.ts +8 -5
  36. package/bin/service/hook.d.ts.map +1 -1
  37. package/bin/service/hook.js +11 -14
  38. package/bin/service/hook.js.map +1 -1
  39. package/bin/service/plugin.d.ts +20 -96
  40. package/bin/service/plugin.d.ts.map +1 -1
  41. package/bin/service/plugin.js +24 -61
  42. package/bin/service/plugin.js.map +1 -1
  43. package/bin/service/products/products-service.d.ts +0 -5
  44. package/bin/service/products/products-service.d.ts.map +1 -1
  45. package/bin/service/products/products-service.js +19 -25
  46. package/bin/service/products/products-service.js.map +1 -1
  47. package/bin/service/service.d.ts +76 -65
  48. package/bin/service/service.d.ts.map +1 -1
  49. package/bin/service/service.js +47 -80
  50. package/bin/service/service.js.map +1 -1
  51. package/bin/service/types.d.ts +2 -8
  52. package/bin/service/types.d.ts.map +1 -1
  53. package/bin/store/db.d.ts +5 -4
  54. package/bin/store/db.d.ts.map +1 -1
  55. package/bin/store/db.js +3 -2
  56. package/bin/store/db.js.map +1 -1
  57. package/package.json +8 -9
@@ -1,11 +1,9 @@
1
1
  /**
2
2
  * Base Runtime 主模块。
3
3
  *
4
- * Base 是运行时容器,只负责:Service 路由、鉴权、HTTP
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 { serviceRouteFullPath } from "../../service/service.js";
24
- import { asPlugin } from "../../service/plugin.js";
20
+ import { asPlugin, Plugin } from "../../service/plugin.js";
25
21
  import { Authenticator } from "../auth/authenticator.js";
26
- import { randomSecret, bearerToken } from "../../utils/helpers.js";
27
- // ===========================================================================
28
- // Base
29
- // ===========================================================================
30
- /**
31
- * VisibleBase 运行时容器。
32
- *
33
- * 接收 Service 注册、构建 Hono 路由、管理初始化生命周期。
34
- * 数据库和 env 通过 Runtime 适配器注入,不依赖任何特定运行时。
35
- */
22
+ import { randomSecret } from "../../utils/helpers.js";
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
- // 初始化(完全通用,不知道任何具体 Service)
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
- // 6. 创建鉴权器
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
- if (!svc.tables)
133
+ const tables = svc.tables ?? svc.schema;
134
+ if (!tables)
184
135
  continue;
185
- for (const [name, table] of Object.entries(svc.tables)) {
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,101 @@ 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
- app.get("/health", (c) => {
198
- const services = this.getServices();
199
- return c.json({
200
- ok: true,
201
- name: "visiblebase",
202
- checked_at: new Date().toISOString(),
203
- services: services.map((s) => s.id),
204
- service_list: services.map((s) => ({ id: s.id, name: s.name })),
205
- });
206
- });
207
- app.use("/api/admin/*", async (c, next) => {
208
- await this.authenticator.authenticate(c.req.raw, "admin");
209
- await next();
210
- });
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
+ // /v1 路径统一提取身份,不在中间件阶段做强拦。
211
159
  app.use("/v1/*", async (c, next) => {
212
- const token = bearerToken(c.req.raw);
213
- if (token) {
214
- const result = await this.authenticator.authenticate(c.req.raw, "user");
160
+ const result = await this.authenticator.resolve(c.req.raw);
161
+ c.set("identity", { kind: result.level });
162
+ if (result.user)
215
163
  c.set("user", result.user);
164
+ if (result.product)
216
165
  c.set("product", result.product);
217
- }
218
166
  await next();
219
167
  });
220
- app.get("/v1/services", (c) => c.json({ items: this.getServices().map((s) => s.id) }));
168
+ // Service 列表
169
+ app.get("/v1/services", (c) => c.json({
170
+ items: this.getServices().map((s) => ({
171
+ id: s.id,
172
+ name: s.name,
173
+ env: s.env ?? [],
174
+ }))
175
+ }));
176
+ // 为每个 Service 的每个 Action 注册路由
221
177
  for (const svc of this.services.values()) {
222
- for (const route of svc._listRoutes()) {
223
- const fullPath = serviceRouteFullPath(svc.id, route);
224
- app.on(route.method, fullPath, async (c) => {
178
+ for (const def of svc._listActionDefs()) {
179
+ const action = def.action;
180
+ const path = `/v1/${encodeURIComponent(svc.id)}/${action.id}`;
181
+ const register = def.method === "GET" ? app.get.bind(app) : app.post.bind(app);
182
+ register(path, async (c) => {
183
+ let rawBody;
184
+ const input = def.method === "GET"
185
+ ? searchParamsToObject(new URL(c.req.raw.url).searchParams)
186
+ : parseRequestInput(rawBody = await c.req.text().catch(() => ""));
187
+ const db = {};
188
+ if (svc.tables) {
189
+ for (const name of Object.keys(svc.tables)) {
190
+ db[name] = this.tableMap.get(`${svc.id}.${name}`);
191
+ }
192
+ }
225
193
  const ctx = {
194
+ input,
226
195
  request: c.req.raw,
227
- url: new URL(c.req.url),
228
- service_id: svc.id,
229
- route,
196
+ raw_body: rawBody,
197
+ db,
198
+ identity: c.get("identity") ?? { kind: "guest" },
230
199
  user: c.get("user"),
231
200
  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
201
  env: (key) => this.runtime.env.get(key),
202
+ service: { id: svc.id, name: svc.name },
203
+ action: { id: action.id },
204
+ started_at: new Date(),
237
205
  };
238
- return route.handler(ctx);
206
+ try {
207
+ this.authenticator.authorize({
208
+ level: ctx.identity?.kind ?? "guest",
209
+ user: ctx.user,
210
+ product: ctx.product,
211
+ }, def.auth);
212
+ for (const hook of this.globalPluginHooks()) {
213
+ await hook.runBefore(ctx);
214
+ }
215
+ await action.hook.runBefore(ctx);
216
+ await svc.hook.runBefore(ctx);
217
+ const output = await action.run(ctx);
218
+ ctx.output = output;
219
+ ctx.ended_at = new Date();
220
+ await svc.hook.runAfter(ctx);
221
+ await action.hook.runAfter(ctx);
222
+ for (const hook of this.globalPluginHooks()) {
223
+ await hook.runAfter(ctx);
224
+ }
225
+ if (output instanceof Response)
226
+ return output;
227
+ return c.json(output, 200);
228
+ }
229
+ catch (error) {
230
+ ctx.ended_at = new Date();
231
+ ctx.error = error instanceof Error ? error : new Error(String(error));
232
+ await svc.hook.runOnError(ctx);
233
+ await action.hook.runOnError(ctx);
234
+ for (const hook of this.globalPluginHooks()) {
235
+ await hook.runOnError(ctx);
236
+ }
237
+ const message = error instanceof Error ? error.message : String(error);
238
+ const status = error.statusCode ?? 500;
239
+ return c.json({ error: { message, type: "server_error" } }, status);
240
+ }
239
241
  });
240
242
  }
241
243
  }
@@ -258,24 +260,66 @@ export class Base {
258
260
  const products = this.services.get("products");
259
261
  return { product: products?.store ?? { get: () => Promise.resolve(undefined) } };
260
262
  }
263
+ /**
264
+ * 收集插件注册的全局 hook。
265
+ *
266
+ * Service.hook 只作用于当前 Service;Plugin.globalHook 用于 usage、
267
+ * billing 等需要观察所有用户侧调用的横切能力。
268
+ */
269
+ globalPluginHooks() {
270
+ return [...this.services.values()]
271
+ .filter((svc) => svc instanceof Plugin)
272
+ .map((svc) => svc.globalHook);
273
+ }
261
274
  }
262
275
  export { Base as VisibleBase };
263
- // ===========================================================================
264
- // 默认密钥 Bootstrap
265
- // ===========================================================================
266
276
  /**
267
- * 自动生成 Base 必需的默认密钥(ADMIN_SECRET_KEY、TOKEN_SIGNING_KEY)。
277
+ * 解析请求输入。
268
278
  *
269
- * 仅在 .env / Secrets 中没有对应值时才生成,降低首次启动配置成本。
279
+ * Base Action input 仍以 JSON object 为主;同时保留 raw body 给
280
+ * webhook 验签等需要原文的插件使用。
270
281
  */
271
- async function bootstrapDefaultKeys(env) {
272
- const ADMIN_SECRET_KEY = "VISIBLEBASE_ADMIN_SECRET_KEY";
273
- const TOKEN_SIGNING_KEY = "VISIBLEBASE_TOKEN_SIGNING_KEY";
274
- if (!env.get(ADMIN_SECRET_KEY)) {
275
- await env.upsert({ key: ADMIN_SECRET_KEY, value: `admin_${randomSecret()}` });
282
+ function parseRequestInput(rawBody) {
283
+ if (!rawBody)
284
+ return {};
285
+ try {
286
+ const parsed = JSON.parse(rawBody);
287
+ return parsed && typeof parsed === "object" && !Array.isArray(parsed)
288
+ ? parsed
289
+ : {};
276
290
  }
277
- if (!env.get(TOKEN_SIGNING_KEY)) {
278
- await env.upsert({ key: TOKEN_SIGNING_KEY, value: `sign_${randomSecret()}` });
291
+ catch {
292
+ return {};
279
293
  }
280
294
  }
295
+ /**
296
+ * 将 URLSearchParams 转成普通对象。
297
+ *
298
+ * 不使用 searchParams.entries(),避免部分 TypeScript lib 配置缺少
299
+ * DOM.Iterable 时在 CI 中报类型错误。
300
+ */
301
+ function searchParamsToObject(searchParams) {
302
+ const result = {};
303
+ searchParams.forEach((value, key) => {
304
+ result[key] = value;
305
+ });
306
+ return result;
307
+ }
308
+ /**
309
+ * 确保系统必需的 env key 存在(admin key、token signing key)。
310
+ * 直接写 D1 + 同步内存缓存。
311
+ */
312
+ async function bootstrapDefaultKeys(env, db) {
313
+ const now = new Date().toISOString();
314
+ const adminKey = env.get("VISIBLEBASE_ADMIN_SECRET_KEY") || `admin_${randomSecret()}`;
315
+ await db.prepare("INSERT OR REPLACE INTO visiblebase_env (key, value, created_at, updated_at) VALUES (?, ?, ?, ?)")
316
+ .bind("VISIBLEBASE_ADMIN_SECRET_KEY", adminKey, now, now).run();
317
+ if (!env.get("VISIBLEBASE_ADMIN_SECRET_KEY"))
318
+ await env.upsert({ key: "VISIBLEBASE_ADMIN_SECRET_KEY", value: adminKey });
319
+ const tokenKey = env.get("VISIBLEBASE_TOKEN_SIGNING_KEY") || `sign_${randomSecret()}`;
320
+ await db.prepare("INSERT OR REPLACE INTO visiblebase_env (key, value, created_at, updated_at) VALUES (?, ?, ?, ?)")
321
+ .bind("VISIBLEBASE_TOKEN_SIGNING_KEY", tokenKey, now, now).run();
322
+ if (!env.get("VISIBLEBASE_TOKEN_SIGNING_KEY"))
323
+ await env.upsert({ key: "VISIBLEBASE_TOKEN_SIGNING_KEY", value: tokenKey });
324
+ }
281
325
  //# 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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"}
@@ -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;CAC9B"}
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 type { Context, Handler, RouteAuth, EnvRequirement, } from "./service/service.js";
20
- export type { BasePlugin, BasePluginContext, PluginRouteContext, ServiceContext, } from "./service/plugin.js";
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, ModelHandlers, PublicModel, } from "./service/ai/types.js";
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";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAExD,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAErE,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;AAE7C,YAAY,EACV,OAAO,EACP,OAAO,EACP,SAAS,EACT,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAM/B,YAAY,EACV,MAAM,EACN,cAAc,GACf,MAAM,oBAAoB,CAAC;AAM5B,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"}
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"}
package/bin/index.js CHANGED
@@ -1,15 +1,5 @@
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
  // ===========================================================================
15
5
  // 场景 1:创建 Base 实例
@@ -20,26 +10,27 @@ export { Base, VisibleBase } from "./core/base/base.js";
20
10
  // ===========================================================================
21
11
  export { Service } from "./service/service.js";
22
12
  export { Plugin } from "./service/plugin.js";
13
+ export { Action } from "./service/action.js";
23
14
  export { AIService } from "./service/ai/ai-service.js";
24
15
  export { Provider } from "./service/ai/provider.js";
25
16
  // ===========================================================================
26
- // 场景 4:用户鉴权与 Token
17
+ // 场景 3:用户鉴权与 Token
27
18
  // ===========================================================================
28
19
  export { TokenSigner } from "./core/auth/token-signer.js";
29
20
  // ===========================================================================
30
- // 场景 5:管理 Product 与环境变量(内置 Service)
21
+ // 场景 4:管理 Product 与环境变量(内置 Service)
31
22
  // ===========================================================================
32
23
  export { EnvService } from "./service/env/env-service.js";
33
24
  export { EnvStore } from "./service/env/env-store.js";
34
25
  export { ProductsService } from "./service/products/products-service.js";
35
26
  export { executeDDL } from "./store/db.js";
36
27
  // ===========================================================================
37
- // 场景 7:内置表 Schema(供 Runtime 适配器使用)
28
+ // 场景 6:内置表 Schema
38
29
  // ===========================================================================
39
30
  export { sqliteProducts, pgProducts } from "./service/products/schema.js";
40
31
  export { sqliteEnv, pgEnv } from "./service/env/schema.js";
41
32
  // ===========================================================================
42
- // 场景 8:工具函数
33
+ // 场景 7:工具函数
43
34
  // ===========================================================================
44
35
  export { randomSecret, base64UrlEncode, base64UrlDecode, base64UrlEncodeBytes, base64UrlDecodeBytes, timingSafeEqualBytes, httpError, normalizeEnvKey, bearerToken, parseDotenvEntries, } from "./utils/helpers.js";
45
36
  //# sourceMappingURL=index.js.map
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMxD,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAgB7C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAiBpD,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAS1D,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAQzE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAE3D,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,WAAW,EACX,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIxD,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAmB7C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAQpD,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAS1D,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAQzE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAE3D,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,WAAW,EACX,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Action 模块。
3
+ *
4
+ * Action 是 Service 的一等能力单元。
5
+ * 每个 Action 有独立的 hook(before/after/onError),可独立被 client 调用。
6
+ *
7
+ * 使用方式:
8
+ * ```ts
9
+ * const zh2en = translateService.action("zh2en", async (ctx) => {
10
+ * return await translate(ctx.input.text, "zh", "en");
11
+ * });
12
+ * zh2en.before(checkBalance).after(deductFee);
13
+ * ```
14
+ */
15
+ import { Hook } from "./hook.js";
16
+ import type { Context } from "./service.js";
17
+ /** Action 的业务逻辑函数 */
18
+ export type ActionFn = (ctx: Context) => unknown | Promise<unknown>;
19
+ /** Action 实例 */
20
+ export declare class Action {
21
+ /** Action 唯一 ID */
22
+ readonly id: string;
23
+ /** Action 独立的 hook(before/after/onError) */
24
+ readonly hook: Hook;
25
+ /** 业务逻辑 */
26
+ private readonly _run;
27
+ constructor(id: string, fn: ActionFn);
28
+ /** 注册 before hook */
29
+ before(fn: HookFn): this;
30
+ /** 注册 after hook */
31
+ after(fn: HookFn): this;
32
+ /** 注册 onError hook */
33
+ onError(fn: HookFn): this;
34
+ /** 执行业务逻辑 */
35
+ run(ctx: Context): Promise<unknown>;
36
+ }
37
+ /**
38
+ * Hook 回调函数。
39
+ *
40
+ * 接收 Context,不返回值(返回 void 或 Promise<void>)。
41
+ * 如需修改 context,直接在 ctx 上改(如 ctx.output)。
42
+ */
43
+ export type HookFn = (ctx: Context) => void | Promise<void>;
44
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/service/action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,qBAAqB;AACrB,MAAM,MAAM,QAAQ,GAAG,CACrB,GAAG,EAAE,OAAO,KACT,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,gBAAgB;AAChB,qBAAa,MAAM;IACjB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,OAAc;IAE3B,WAAW;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAEpB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ;IAKpC,qBAAqB;IACrB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxB,oBAAoB;IACpB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKvB,sBAAsB;IACtB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKzB,aAAa;IACP,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAG1C;AAED;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}