@lark-apaas/db-schema-sync 0.1.2 → 0.1.3-alpha.1

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/dist/bin.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  __toESM,
7
7
  generateSchema,
8
8
  resolveEnvOptions
9
- } from "./chunk-OFEXLJ35.js";
9
+ } from "./chunk-BLUXGT2D.js";
10
10
 
11
11
  // node_modules/dotenv/package.json
12
12
  var require_package = __commonJS({
@@ -31,9 +31,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
31
31
  mod
32
32
  ));
33
33
 
34
- // ../../../node_modules/@lark-apaas/http-client/dist/index.js
34
+ // ../../server/http-client/dist/index.js
35
35
  var require_dist = __commonJS({
36
- "../../../node_modules/@lark-apaas/http-client/dist/index.js"(exports, module) {
36
+ "../../server/http-client/dist/index.js"(exports, module) {
37
37
  "use strict";
38
38
  var __defProp2 = Object.defineProperty;
39
39
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -56,7 +56,6 @@ var require_dist = __commonJS({
56
56
  __export(index_exports, {
57
57
  DEFAULT_CLOCK_TOLERANCE_SEC: () => DEFAULT_CLOCK_TOLERANCE_SEC,
58
58
  DEFAULT_JWT_EXPIRE_TIME_MS: () => DEFAULT_JWT_EXPIRE_TIME_MS,
59
- FileTokenProvider: () => FileTokenProvider,
60
59
  HttpClient: () => HttpClient2,
61
60
  HttpError: () => HttpError,
62
61
  generateJWTToken: () => generateJWTToken,
@@ -198,7 +197,7 @@ var require_dist = __commonJS({
198
197
  getCacheKey(claims) {
199
198
  const parts = [
200
199
  claims.access_key,
201
- claims.tenant_id?.toString() || "",
200
+ claims.tenant_id || "",
202
201
  claims.user_id || "",
203
202
  claims.app_id || "",
204
203
  claims.app_env || "",
@@ -229,80 +228,12 @@ var require_dist = __commonJS({
229
228
  };
230
229
  }
231
230
  };
232
- var import_fs = __require("fs");
233
- var DEFAULT_REFRESH_BEFORE_MS = 5 * 60 * 1e3;
234
- var DEFAULT_TOKEN_PATHS = [
235
- "/home/gem/workspace/.force/openclaw/miaoda-provider-key"
236
- ];
237
- var FileTokenProvider = class {
238
- cache = /* @__PURE__ */ new Map();
239
- paths;
240
- refreshBeforeMs;
241
- constructor(config) {
242
- this.paths = config?.paths ?? DEFAULT_TOKEN_PATHS;
243
- this.refreshBeforeMs = config?.refreshBeforeMs ?? DEFAULT_REFRESH_BEFORE_MS;
244
- }
245
- /**
246
- * 获取 token,按路径优先级依次尝试
247
- *
248
- * 1. 缓存有效且不在刷新窗口 → 直接返回
249
- * 2. 进入刷新窗口 → 重读文件,更新缓存
250
- * 3. 文件未更新但缓存未过期 → 仍返回旧缓存
251
- * 4. 所有路径均无有效 token → 返回 null
252
- */
253
- getToken() {
254
- const now = Date.now();
255
- for (const filePath of this.paths) {
256
- const cached = this.cache.get(filePath);
257
- if (cached && cached.expiresAtMs - now > this.refreshBeforeMs) {
258
- return { token: cached.token, accessKey: cached.accessKey };
259
- }
260
- const result = this.readAndParse(filePath);
261
- if (result) {
262
- this.cache.set(filePath, result);
263
- if (result.expiresAtMs > now) {
264
- return { token: result.token, accessKey: result.accessKey };
265
- }
266
- }
267
- if (cached && cached.expiresAtMs > now) {
268
- return { token: cached.token, accessKey: cached.accessKey };
269
- }
270
- }
271
- return null;
272
- }
273
- clearCache() {
274
- this.cache.clear();
275
- }
276
- readAndParse(filePath) {
277
- try {
278
- const token = (0, import_fs.readFileSync)(filePath, "utf-8").trim();
279
- if (!token) return null;
280
- const payload = this.decodePayload(token);
281
- if (!payload?.exp) return null;
282
- return {
283
- token,
284
- accessKey: payload.access_key ?? "",
285
- expiresAtMs: payload.exp * 1e3
286
- };
287
- } catch {
288
- return null;
289
- }
290
- }
291
- decodePayload(token) {
292
- try {
293
- const segments = token.split(".");
294
- if (segments.length !== 3) return null;
295
- const padLength = (4 - (segments[1].length % 4 || 4)) % 4;
296
- const padded = `${segments[1]}${"=".repeat(padLength)}`.replace(/-/g, "+").replace(/_/g, "/");
297
- return JSON.parse(Buffer.from(padded, "base64").toString("utf8"));
298
- } catch {
299
- return null;
300
- }
301
- }
302
- };
303
231
  var DEFAULT_DOMAIN_ENV = "FORCE_AUTHN_INNERAPI_DOMAIN";
304
232
  var DEFAULT_ACCESS_KEY_ENV = "FORCE_AUTHN_ACCESS_KEY";
305
233
  var DEFAULT_SECRET_KEY_ENV = "FORCE_AUTHN_ACCESS_SECRET";
234
+ var DEFAULT_ADMIN_DOMAIN_ENV = "MIAODA_DEV_INNER_DOMAIN_WITH_PREFIX";
235
+ var DEFAULT_CLIENT_TOKEN_ENV = "MIAODA_AUTHN_CODE";
236
+ var MIAODA_CLIENT_TOKEN_HEADER = "X-Miaoda-Client-Token";
306
237
  function resolvePlatformBaseURL(options) {
307
238
  if (!options?.enabled) {
308
239
  return options?.baseURL;
@@ -310,7 +241,7 @@ var require_dist = __commonJS({
310
241
  if (options.baseURL) {
311
242
  return options.baseURL;
312
243
  }
313
- const envName = options.domainEnv || DEFAULT_DOMAIN_ENV;
244
+ const envName = options.adminInnerApi ? options.adminDomainEnv || DEFAULT_ADMIN_DOMAIN_ENV : options.domainEnv || DEFAULT_DOMAIN_ENV;
314
245
  const domain = process.env[envName];
315
246
  if (!domain) {
316
247
  throw new Error(`\u5E73\u53F0\u6A21\u5F0F\u9700\u8981\u57FA\u7840\u57DF\u540D\uFF0C\u8BF7\u8BBE\u7F6E\u73AF\u5883\u53D8\u91CF ${envName}`);
@@ -322,13 +253,6 @@ var require_dist = __commonJS({
322
253
  return void 0;
323
254
  }
324
255
  ensureNoAccessKeyOverride("platform.defaultClaims", options.defaultClaims);
325
- let fileTokenProvider;
326
- if (options.tokenProvider?.type === "file") {
327
- fileTokenProvider = new FileTokenProvider({
328
- paths: options.tokenProvider.paths,
329
- refreshBeforeMs: options.refreshBeforeMs
330
- });
331
- }
332
256
  const accessKeyEnv = options.accessKeyEnv || DEFAULT_ACCESS_KEY_ENV;
333
257
  const secretKeyEnv = options.secretKeyEnv || DEFAULT_SECRET_KEY_ENV;
334
258
  const accessKey = options.accessKey ?? (process.env[accessKeyEnv] || "");
@@ -340,18 +264,8 @@ var require_dist = __commonJS({
340
264
  expireTimeMs,
341
265
  refreshBeforeMs: options.refreshBeforeMs
342
266
  });
267
+ const clientTokenEnv = options.clientTokenEnv || DEFAULT_CLIENT_TOKEN_ENV;
343
268
  interceptors.request.use((config) => {
344
- if (fileTokenProvider) {
345
- const fileToken = fileTokenProvider.getToken();
346
- if (fileToken) {
347
- const headers2 = {
348
- ...config.headers,
349
- "Authorization": `Bearer ${fileToken.token}`,
350
- "x-api-key": fileToken.accessKey
351
- };
352
- return { ...config, headers: headers2 };
353
- }
354
- }
355
269
  ensureNoAccessKeyOverride("request.platformAuth.customClaims", config.platformAuth?.customClaims);
356
270
  const claims = {
357
271
  ...options.defaultClaims || {},
@@ -364,6 +278,12 @@ var require_dist = __commonJS({
364
278
  "Authorization": `Bearer ${token}`,
365
279
  "x-api-key": accessKey
366
280
  };
281
+ if (options.adminInnerApi) {
282
+ const clientToken = process.env[clientTokenEnv];
283
+ if (clientToken) {
284
+ headers[MIAODA_CLIENT_TOKEN_HEADER] = clientToken;
285
+ }
286
+ }
367
287
  return {
368
288
  ...config,
369
289
  headers
@@ -491,7 +411,7 @@ var require_dist = __commonJS({
491
411
  response: new InterceptorManager()
492
412
  };
493
413
  constructor(config) {
494
- const { platform, security, ...restConfig } = config || {};
414
+ const { platform, security, preInterceptors, ...restConfig } = config || {};
495
415
  this.defaultConfig = {
496
416
  timeout: 5e3,
497
417
  ...restConfig
@@ -504,12 +424,14 @@ var require_dist = __commonJS({
504
424
  strictMode,
505
425
  ...security
506
426
  };
427
+ this.registerRequestPreInterceptors(preInterceptors?.request);
507
428
  if (platform?.enabled) {
508
429
  if (!this.defaultConfig.baseURL) {
509
430
  this.defaultConfig.baseURL = resolvePlatformBaseURL(platform);
510
431
  }
511
432
  registerPlatformPlugin(this.interceptors, platform);
512
433
  }
434
+ this.registerResponsePreInterceptors(preInterceptors?.response);
513
435
  }
514
436
  /**
515
437
  * GET 请求
@@ -659,6 +581,31 @@ var require_dist = __commonJS({
659
581
  return this.runResponseInterceptors(Promise.reject(httpError));
660
582
  }
661
583
  }
584
+ /**
585
+ * 执行请求拦截器链
586
+ */
587
+ registerRequestPreInterceptors(interceptors) {
588
+ if (!interceptors?.length) {
589
+ return;
590
+ }
591
+ for (const interceptor of interceptors) {
592
+ this.interceptors.request.use(
593
+ interceptor.onFulfilled,
594
+ interceptor.onRejected
595
+ );
596
+ }
597
+ }
598
+ registerResponsePreInterceptors(interceptors) {
599
+ if (!interceptors?.length) {
600
+ return;
601
+ }
602
+ for (const interceptor of interceptors) {
603
+ this.interceptors.response.use(
604
+ interceptor.onFulfilled,
605
+ interceptor.onRejected
606
+ );
607
+ }
608
+ }
662
609
  /**
663
610
  * 执行请求拦截器链
664
611
  */
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  generateSchemaFromData,
6
6
  normalizeApiResponse,
7
7
  resolveEnvOptions
8
- } from "./chunk-OFEXLJ35.js";
8
+ } from "./chunk-BLUXGT2D.js";
9
9
  export {
10
10
  generateSchema,
11
11
  generateSchemaCode,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/db-schema-sync",
3
- "version": "0.1.2",
3
+ "version": "0.1.3-alpha.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,7 +29,7 @@
29
29
  "node": ">=18.0.0"
30
30
  },
31
31
  "dependencies": {
32
- "@lark-apaas/http-client": "^0.1.5",
32
+ "@lark-apaas/http-client": "0.1.6-alpha.1",
33
33
  "dotenv": "^17.3.1",
34
34
  "tiny-pinyin": "^1.3.2"
35
35
  },