@zenstackhq/cli 3.3.0-beta.4 → 3.3.0
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/index.cjs +32 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +32 -14
- package/dist/index.js.map +1 -1
- package/package.json +12 -11
package/dist/index.cjs
CHANGED
|
@@ -28,6 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
));
|
|
29
29
|
|
|
30
30
|
// src/index.ts
|
|
31
|
+
var import_config = require("dotenv/config");
|
|
31
32
|
var import_language5 = require("@zenstackhq/language");
|
|
32
33
|
var import_colors10 = __toESM(require("colors"), 1);
|
|
33
34
|
var import_commander = require("commander");
|
|
@@ -1040,25 +1041,34 @@ async function run9(options) {
|
|
|
1040
1041
|
}
|
|
1041
1042
|
__name(run9, "run");
|
|
1042
1043
|
function evaluateUrl(value) {
|
|
1043
|
-
const
|
|
1044
|
+
const envMatch = value.trim().match(/^env\s*\(\s*['"]([^'"]+)['"]\s*\)$/);
|
|
1045
|
+
if (envMatch) {
|
|
1046
|
+
const varName = envMatch[1];
|
|
1044
1047
|
const envValue = process.env[varName];
|
|
1045
1048
|
if (!envValue) {
|
|
1046
1049
|
throw new CliError(`Environment variable ${varName} is not set`);
|
|
1047
1050
|
}
|
|
1048
1051
|
return envValue;
|
|
1049
|
-
}
|
|
1052
|
+
} else {
|
|
1053
|
+
return value;
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
__name(evaluateUrl, "evaluateUrl");
|
|
1057
|
+
function redactDatabaseUrl(url) {
|
|
1050
1058
|
try {
|
|
1051
|
-
const
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
if (
|
|
1056
|
-
|
|
1059
|
+
const parsedUrl = new URL(url);
|
|
1060
|
+
if (parsedUrl.password) {
|
|
1061
|
+
parsedUrl.password = "***";
|
|
1062
|
+
}
|
|
1063
|
+
if (parsedUrl.username) {
|
|
1064
|
+
parsedUrl.username = "***";
|
|
1057
1065
|
}
|
|
1058
|
-
|
|
1066
|
+
return parsedUrl.toString();
|
|
1067
|
+
} catch {
|
|
1068
|
+
return url;
|
|
1059
1069
|
}
|
|
1060
1070
|
}
|
|
1061
|
-
__name(
|
|
1071
|
+
__name(redactDatabaseUrl, "redactDatabaseUrl");
|
|
1062
1072
|
function createDialect(provider, databaseUrl, outputPath) {
|
|
1063
1073
|
switch (provider) {
|
|
1064
1074
|
case "sqlite": {
|
|
@@ -1075,14 +1085,14 @@ function createDialect(provider, databaseUrl, outputPath) {
|
|
|
1075
1085
|
});
|
|
1076
1086
|
}
|
|
1077
1087
|
case "postgresql":
|
|
1078
|
-
console.log(import_colors9.default.gray(`Connecting to PostgreSQL database at: ${databaseUrl}`));
|
|
1088
|
+
console.log(import_colors9.default.gray(`Connecting to PostgreSQL database at: ${redactDatabaseUrl(databaseUrl)}`));
|
|
1079
1089
|
return new import_postgres.PostgresDialect({
|
|
1080
1090
|
pool: new import_pg.Pool({
|
|
1081
1091
|
connectionString: databaseUrl
|
|
1082
1092
|
})
|
|
1083
1093
|
});
|
|
1084
1094
|
case "mysql":
|
|
1085
|
-
console.log(import_colors9.default.gray(`Connecting to MySQL database at: ${databaseUrl}`));
|
|
1095
|
+
console.log(import_colors9.default.gray(`Connecting to MySQL database at: ${redactDatabaseUrl(databaseUrl)}`));
|
|
1086
1096
|
return new import_mysql.MysqlDialect({
|
|
1087
1097
|
pool: (0, import_mysql2.createPool)(databaseUrl)
|
|
1088
1098
|
});
|
|
@@ -1117,6 +1127,14 @@ function startServer(client, schema, options) {
|
|
|
1117
1127
|
console.log(`ZenStack proxy server is running on port: ${options.port}`);
|
|
1118
1128
|
console.log(`You can visit ZenStack Studio at: ${import_colors9.default.blue("https://studio.zenstack.dev")}`);
|
|
1119
1129
|
});
|
|
1130
|
+
server.on("error", (err) => {
|
|
1131
|
+
if (err.code === "EADDRINUSE") {
|
|
1132
|
+
console.error(import_colors9.default.red(`Port ${options.port} is already in use. Please choose a different port using -p option.`));
|
|
1133
|
+
} else {
|
|
1134
|
+
throw new CliError(`Failed to start the server: ${err.message}`);
|
|
1135
|
+
}
|
|
1136
|
+
process.exit(1);
|
|
1137
|
+
});
|
|
1120
1138
|
process.on("SIGTERM", async () => {
|
|
1121
1139
|
server.close(() => {
|
|
1122
1140
|
console.log("\nZenStack proxy server closed");
|
|
@@ -1141,7 +1159,7 @@ var import_node_fs13 = __toESM(require("fs"), 1);
|
|
|
1141
1159
|
var os2 = __toESM(require("os"), 1);
|
|
1142
1160
|
|
|
1143
1161
|
// src/constants.ts
|
|
1144
|
-
var TELEMETRY_TRACKING_TOKEN = "
|
|
1162
|
+
var TELEMETRY_TRACKING_TOKEN = "74944eb779d7d3b4ce185be843fde9fc";
|
|
1145
1163
|
|
|
1146
1164
|
// src/utils/is-ci.ts
|
|
1147
1165
|
var import_node_process = require("process");
|
|
@@ -1434,7 +1452,7 @@ Arguments following -- are passed to the seed script. E.g.: "zen db seed -- --us
|
|
|
1434
1452
|
program.command("init").description("Initialize an existing project for ZenStack").argument("[path]", "project path", ".").addOption(noVersionCheckOption).action(initAction);
|
|
1435
1453
|
program.command("check").description("Check a ZModel schema for syntax or semantic errors").addOption(schemaOption).addOption(noVersionCheckOption).action(checkAction);
|
|
1436
1454
|
program.command("format").description("Format a ZModel schema file").addOption(schemaOption).addOption(noVersionCheckOption).action(formatAction);
|
|
1437
|
-
program.command("proxy").alias("studio").description("Start the ZenStack proxy server").addOption(schemaOption).addOption(new import_commander.Option("-p, --port <port>", "port to run the proxy server on").default(
|
|
1455
|
+
program.command("proxy").alias("studio").description("Start the ZenStack proxy server").addOption(schemaOption).addOption(new import_commander.Option("-p, --port <port>", "port to run the proxy server on").default(2311)).addOption(new import_commander.Option("-o, --output <path>", "output directory for `zen generate` command")).addOption(new import_commander.Option("-d, --databaseUrl <url>", "database connection URL")).addOption(new import_commander.Option("-l, --logLevel <level...>", "Query log levels (e.g., query, error)")).addOption(noVersionCheckOption).action(proxyAction);
|
|
1438
1456
|
program.addHelpCommand("help [command]", "Display help for a command");
|
|
1439
1457
|
program.hook("preAction", async (_thisCommand, actionCommand) => {
|
|
1440
1458
|
if (actionCommand.getOptionValue("versionCheck") !== false) {
|