@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 +5 -7
- package/dist/{chunk-TQCGDNFC.js → chunk-HRE26HBV.js} +13 -44
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/dist/bin.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
__toESM,
|
|
7
7
|
generateSchema,
|
|
8
8
|
resolveEnvOptions
|
|
9
|
-
} from "./chunk-
|
|
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
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
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
|
+
"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.
|
|
32
|
+
"@lark-apaas/http-client": "^0.1.6",
|
|
33
33
|
"dotenv": "^17.3.1",
|
|
34
34
|
"tiny-pinyin": "^1.3.2"
|
|
35
35
|
},
|