@lark-apaas/db-schema-sync 0.1.6-alpha.3 → 0.1.6-alpha.4

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-HRE26HBV.js";
9
+ } from "./chunk-5ZXUJ7KP.js";
10
10
 
11
11
  // node_modules/dotenv/package.json
12
12
  var require_package = __commonJS({
@@ -424,10 +424,12 @@ function parseArgs(argv) {
424
424
 
425
425
  // src/bin.ts
426
426
  async function main() {
427
- const envPath = resolve(process.cwd(), ".env");
428
- if (existsSync(envPath)) {
429
- (0, import_dotenv.config)({ path: envPath });
430
- console.log("[db-schema-sync] \u2713 Loaded .env file");
427
+ for (const name of [".env.local", ".env"]) {
428
+ const envPath = resolve(process.cwd(), name);
429
+ if (existsSync(envPath)) {
430
+ (0, import_dotenv.config)({ path: envPath });
431
+ console.log(`[db-schema-sync] \u2713 Loaded ${name}`);
432
+ }
431
433
  }
432
434
  const cliArgs = parseArgs(process.argv);
433
435
  const output = cliArgs.output || process.env.DB_SCHEMA_OUTPUT || "server/database/schema.ts";
@@ -228,9 +228,21 @@ var require_dist = __commonJS({
228
228
  };
229
229
  }
230
230
  };
231
+ var StaticTokenSource = class {
232
+ constructor(token) {
233
+ this.token = token;
234
+ if (!token) {
235
+ throw new Error("StaticTokenSource: token \u4E0D\u80FD\u4E3A\u7A7A");
236
+ }
237
+ }
238
+ getToken(_claims) {
239
+ return this.token;
240
+ }
241
+ };
231
242
  var DEFAULT_DOMAIN_ENV = "FORCE_AUTHN_INNERAPI_DOMAIN";
232
243
  var DEFAULT_ACCESS_KEY_ENV = "FORCE_AUTHN_ACCESS_KEY";
233
244
  var DEFAULT_SECRET_KEY_ENV = "FORCE_AUTHN_ACCESS_SECRET";
245
+ var DEFAULT_TOKEN_ENV = "FORCE_AUTHN_TOKEN";
234
246
  var DEFAULT_ADMIN_DOMAIN_ENV = "MIAODA_DEV_INNER_DOMAIN_WITH_PREFIX";
235
247
  var DEFAULT_CLIENT_TOKEN_ENV = "MIAODA_AUTHN_CODE";
236
248
  var MIAODA_CLIENT_TOKEN_HEADER = "X-Miaoda-Client-Token";
@@ -264,6 +276,11 @@ var require_dist = __commonJS({
264
276
  expireTimeMs,
265
277
  refreshBeforeMs: options.refreshBeforeMs
266
278
  });
279
+ const tokenEnv = options.tokenEnv || DEFAULT_TOKEN_ENV;
280
+ const platformToken = options.token ?? (process.env[tokenEnv] || "");
281
+ const staticTokenSource = platformToken ? new StaticTokenSource(platformToken) : null;
282
+ const primaryTokenSource = staticTokenSource ?? tokenManager;
283
+ const fallbackTokenSource = staticTokenSource ? tokenManager : null;
267
284
  const clientTokenEnv = options.clientTokenEnv || DEFAULT_CLIENT_TOKEN_ENV;
268
285
  interceptors.request.use((config) => {
269
286
  ensureNoAccessKeyOverride("request.platformAuth.customClaims", config.platformAuth?.customClaims);
@@ -272,7 +289,13 @@ var require_dist = __commonJS({
272
289
  ...config.platformAuth?.customClaims || {},
273
290
  access_key: accessKey
274
291
  };
275
- const token = tokenManager.getToken(claims);
292
+ let token;
293
+ try {
294
+ token = primaryTokenSource.getToken(claims);
295
+ } catch (err) {
296
+ if (!fallbackTokenSource) throw err;
297
+ token = fallbackTokenSource.getToken(claims);
298
+ }
276
299
  const headers = {
277
300
  ...config.headers,
278
301
  "Authorization": `Bearer ${token}`,
@@ -1276,11 +1299,17 @@ var primitiveMappers = [
1276
1299
  generate: (f) => `uuid("${escapeDoubleQuote(f.fieldName)}")`,
1277
1300
  imports: () => [{ name: "uuid", from: PG_CORE }]
1278
1301
  },
1279
- // varchar
1302
+ // varchar (honors extraInfo.max_length from listTableView API)
1280
1303
  {
1281
1304
  name: "varchar",
1282
1305
  match: (f) => f.type === "varchar",
1283
- generate: (f) => `varchar("${escapeDoubleQuote(f.fieldName)}")`,
1306
+ generate: (f) => {
1307
+ const maxLength = f.extraInfo?.max_length;
1308
+ if (typeof maxLength === "number" && Number.isInteger(maxLength) && maxLength > 0) {
1309
+ return `varchar("${escapeDoubleQuote(f.fieldName)}", { length: ${maxLength} })`;
1310
+ }
1311
+ return `varchar("${escapeDoubleQuote(f.fieldName)}")`;
1312
+ },
1284
1313
  imports: () => [{ name: "varchar", from: PG_CORE }]
1285
1314
  },
1286
1315
  // text
@@ -1501,9 +1530,7 @@ var ImportCollector = class {
1501
1530
  };
1502
1531
 
1503
1532
  // src/generator/default-value.ts
1504
- var CUSTOM_CAST_TYPES = /* @__PURE__ */ new Set(["user_profile", "file_attachment"]);
1505
- var CURRENT_USER_SENTINEL = "current_user";
1506
- function formatDefaultValue(value, field) {
1533
+ function formatDefaultValue(value) {
1507
1534
  if (value == null || value === "") return "";
1508
1535
  const trimmed = value.trim();
1509
1536
  if (!trimmed || trimmed.toUpperCase() === "NULL") return "";
@@ -1512,12 +1539,6 @@ function formatDefaultValue(value, field) {
1512
1539
  if (trimmed === "true") return ".default(true)";
1513
1540
  if (trimmed === "false") return ".default(false)";
1514
1541
  if (/^-?\d+(\.\d+)?$/.test(trimmed)) return `.default(${trimmed})`;
1515
- if (field && CUSTOM_CAST_TYPES.has(field.type) && !trimmed.includes("::") && trimmed.toLowerCase() !== CURRENT_USER_SENTINEL) {
1516
- const pgLiteral = trimmed.replace(/'/g, "''");
1517
- const escaped = pgLiteral.replace(/`/g, "\\`").replace(/\$\{/g, "\\${");
1518
- const cast = field.isArray ? `${field.type}[]` : field.type;
1519
- return `.default(sql\`'${escaped}'::${cast}\`)`;
1520
- }
1521
1542
  if (/::|\(|CASE|current_setting/i.test(trimmed)) {
1522
1543
  const escaped = trimmed.replace(/`/g, "\\`").replace(/\$\{/g, "\\${");
1523
1544
  return `.default(sql\`${escaped}\`)`;
@@ -1546,7 +1567,7 @@ var defaultModifiers = [
1546
1567
  {
1547
1568
  name: "defaultValue",
1548
1569
  match: (f) => f.defaultValue != null && f.defaultValue !== "",
1549
- modify: (f) => formatDefaultValue(f.defaultValue, f)
1570
+ modify: (f) => formatDefaultValue(f.defaultValue)
1550
1571
  }
1551
1572
  ];
1552
1573
  function applyModifiers(field, modifiers) {
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  generateSchemaFromData,
6
6
  normalizeApiResponse,
7
7
  resolveEnvOptions
8
- } from "./chunk-HRE26HBV.js";
8
+ } from "./chunk-5ZXUJ7KP.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.6-alpha.3",
3
+ "version": "0.1.6-alpha.4",
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.6",
32
+ "@lark-apaas/http-client": "0.1.7-alpha.9",
33
33
  "dotenv": "^17.3.1",
34
34
  "tiny-pinyin": "^1.3.2"
35
35
  },