@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 +7 -5
- package/dist/{chunk-HRE26HBV.js → chunk-5ZXUJ7KP.js} +34 -13
- 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-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
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
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
|
-
|
|
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) =>
|
|
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
|
-
|
|
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
|
|
1570
|
+
modify: (f) => formatDefaultValue(f.defaultValue)
|
|
1550
1571
|
}
|
|
1551
1572
|
];
|
|
1552
1573
|
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.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": "
|
|
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
|
},
|