@lark-apaas/db-schema-sync 0.1.6-alpha.2 → 0.1.6-alpha.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.
package/dist/bin.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  __toESM,
7
7
  generateSchema,
8
8
  resolveEnvOptions
9
- } from "./chunk-TQCGDNFC.js";
9
+ } from "./chunk-HRE26HBV.js";
10
10
 
11
11
  // node_modules/dotenv/package.json
12
12
  var require_package = __commonJS({
@@ -424,12 +424,10 @@ function parseArgs(argv) {
424
424
 
425
425
  // src/bin.ts
426
426
  async function main() {
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
- }
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");
433
431
  }
434
432
  const cliArgs = parseArgs(process.argv);
435
433
  const output = cliArgs.output || process.env.DB_SCHEMA_OUTPUT || "server/database/schema.ts";
@@ -228,21 +228,9 @@ 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
- };
242
231
  var DEFAULT_DOMAIN_ENV = "FORCE_AUTHN_INNERAPI_DOMAIN";
243
232
  var DEFAULT_ACCESS_KEY_ENV = "FORCE_AUTHN_ACCESS_KEY";
244
233
  var DEFAULT_SECRET_KEY_ENV = "FORCE_AUTHN_ACCESS_SECRET";
245
- var DEFAULT_TOKEN_ENV = "FORCE_AUTHN_TOKEN";
246
234
  var DEFAULT_ADMIN_DOMAIN_ENV = "MIAODA_DEV_INNER_DOMAIN_WITH_PREFIX";
247
235
  var DEFAULT_CLIENT_TOKEN_ENV = "MIAODA_AUTHN_CODE";
248
236
  var MIAODA_CLIENT_TOKEN_HEADER = "X-Miaoda-Client-Token";
@@ -268,11 +256,6 @@ var require_dist = __commonJS({
268
256
  const accessKeyEnv = options.accessKeyEnv || DEFAULT_ACCESS_KEY_ENV;
269
257
  const secretKeyEnv = options.secretKeyEnv || DEFAULT_SECRET_KEY_ENV;
270
258
  const accessKey = options.accessKey ?? (process.env[accessKeyEnv] || "");
271
- if (!accessKey) {
272
- throw new Error(
273
- `\u5E73\u53F0\u9274\u6743\u9700\u8981 access key,\u8BF7\u8BBE\u7F6E\u73AF\u5883\u53D8\u91CF ${accessKeyEnv} \u6216\u4F20 options.accessKey`
274
- );
275
- }
276
259
  const secretKey = options.secretKey ?? (process.env[secretKeyEnv] || "");
277
260
  const expireTimeMs = options.expireTimeMs ?? DEFAULT_JWT_EXPIRE_TIME_MS;
278
261
  const tokenManager = new JWTTokenManager({
@@ -281,16 +264,6 @@ var require_dist = __commonJS({
281
264
  expireTimeMs,
282
265
  refreshBeforeMs: options.refreshBeforeMs
283
266
  });
284
- const tokenEnv = options.tokenEnv || DEFAULT_TOKEN_ENV;
285
- const platformToken = options.token ?? (process.env[tokenEnv] || "");
286
- const staticTokenSource = platformToken ? new StaticTokenSource(platformToken) : null;
287
- if (!staticTokenSource && !secretKey) {
288
- throw new Error(
289
- `\u5E73\u53F0\u9274\u6743\u9700\u8981 token \u6216 secret key,\u8BF7\u8BBE\u7F6E\u73AF\u5883\u53D8\u91CF ${tokenEnv}(\u63A8\u8350) \u6216 ${secretKeyEnv}`
290
- );
291
- }
292
- const primaryTokenSource = staticTokenSource ?? tokenManager;
293
- const fallbackTokenSource = staticTokenSource && secretKey ? tokenManager : null;
294
267
  const clientTokenEnv = options.clientTokenEnv || DEFAULT_CLIENT_TOKEN_ENV;
295
268
  interceptors.request.use((config) => {
296
269
  ensureNoAccessKeyOverride("request.platformAuth.customClaims", config.platformAuth?.customClaims);
@@ -299,13 +272,7 @@ var require_dist = __commonJS({
299
272
  ...config.platformAuth?.customClaims || {},
300
273
  access_key: accessKey
301
274
  };
302
- let token;
303
- try {
304
- token = primaryTokenSource.getToken(claims);
305
- } catch (err) {
306
- if (!fallbackTokenSource) throw err;
307
- token = fallbackTokenSource.getToken(claims);
308
- }
275
+ const token = tokenManager.getToken(claims);
309
276
  const headers = {
310
277
  ...config.headers,
311
278
  "Authorization": `Bearer ${token}`,
@@ -1309,17 +1276,11 @@ var primitiveMappers = [
1309
1276
  generate: (f) => `uuid("${escapeDoubleQuote(f.fieldName)}")`,
1310
1277
  imports: () => [{ name: "uuid", from: PG_CORE }]
1311
1278
  },
1312
- // varchar (honors extraInfo.max_length from listTableView API)
1279
+ // varchar
1313
1280
  {
1314
1281
  name: "varchar",
1315
1282
  match: (f) => f.type === "varchar",
1316
- generate: (f) => {
1317
- const maxLength = f.extraInfo?.max_length;
1318
- if (typeof maxLength === "number" && Number.isInteger(maxLength) && maxLength > 0) {
1319
- return `varchar("${escapeDoubleQuote(f.fieldName)}", { length: ${maxLength} })`;
1320
- }
1321
- return `varchar("${escapeDoubleQuote(f.fieldName)}")`;
1322
- },
1283
+ generate: (f) => `varchar("${escapeDoubleQuote(f.fieldName)}")`,
1323
1284
  imports: () => [{ name: "varchar", from: PG_CORE }]
1324
1285
  },
1325
1286
  // text
@@ -1540,7 +1501,9 @@ var ImportCollector = class {
1540
1501
  };
1541
1502
 
1542
1503
  // src/generator/default-value.ts
1543
- function formatDefaultValue(value) {
1504
+ var CUSTOM_CAST_TYPES = /* @__PURE__ */ new Set(["user_profile", "file_attachment"]);
1505
+ var CURRENT_USER_SENTINEL = "current_user";
1506
+ function formatDefaultValue(value, field) {
1544
1507
  if (value == null || value === "") return "";
1545
1508
  const trimmed = value.trim();
1546
1509
  if (!trimmed || trimmed.toUpperCase() === "NULL") return "";
@@ -1549,6 +1512,12 @@ function formatDefaultValue(value) {
1549
1512
  if (trimmed === "true") return ".default(true)";
1550
1513
  if (trimmed === "false") return ".default(false)";
1551
1514
  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
+ }
1552
1521
  if (/::|\(|CASE|current_setting/i.test(trimmed)) {
1553
1522
  const escaped = trimmed.replace(/`/g, "\\`").replace(/\$\{/g, "\\${");
1554
1523
  return `.default(sql\`${escaped}\`)`;
@@ -1577,7 +1546,7 @@ var defaultModifiers = [
1577
1546
  {
1578
1547
  name: "defaultValue",
1579
1548
  match: (f) => f.defaultValue != null && f.defaultValue !== "",
1580
- modify: (f) => formatDefaultValue(f.defaultValue)
1549
+ modify: (f) => formatDefaultValue(f.defaultValue, f)
1581
1550
  }
1582
1551
  ];
1583
1552
  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-TQCGDNFC.js";
8
+ } from "./chunk-HRE26HBV.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.2",
3
+ "version": "0.1.6-alpha.3",
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.7-alpha.8",
32
+ "@lark-apaas/http-client": "^0.1.6",
33
33
  "dotenv": "^17.3.1",
34
34
  "tiny-pinyin": "^1.3.2"
35
35
  },