@zenstackhq/cli 3.3.0-beta.4 → 3.3.0-beta.5

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.js CHANGED
@@ -12,6 +12,7 @@ var __export = (target, all) => {
12
12
  };
13
13
 
14
14
  // src/index.ts
15
+ import "dotenv/config";
15
16
  import { ZModelLanguageMetaData as ZModelLanguageMetaData2 } from "@zenstackhq/language";
16
17
  import colors10 from "colors";
17
18
  import { Command, CommanderError, Option } from "commander";
@@ -1040,6 +1041,21 @@ function evaluateUrl(value) {
1040
1041
  }
1041
1042
  }
1042
1043
  __name(evaluateUrl, "evaluateUrl");
1044
+ function redactDatabaseUrl(url) {
1045
+ try {
1046
+ const parsedUrl = new URL(url);
1047
+ if (parsedUrl.password) {
1048
+ parsedUrl.password = "***";
1049
+ }
1050
+ if (parsedUrl.username) {
1051
+ parsedUrl.username = "***";
1052
+ }
1053
+ return parsedUrl.toString();
1054
+ } catch {
1055
+ return url;
1056
+ }
1057
+ }
1058
+ __name(redactDatabaseUrl, "redactDatabaseUrl");
1043
1059
  function createDialect(provider, databaseUrl, outputPath) {
1044
1060
  switch (provider) {
1045
1061
  case "sqlite": {
@@ -1056,14 +1072,14 @@ function createDialect(provider, databaseUrl, outputPath) {
1056
1072
  });
1057
1073
  }
1058
1074
  case "postgresql":
1059
- console.log(colors9.gray(`Connecting to PostgreSQL database at: ${databaseUrl}`));
1075
+ console.log(colors9.gray(`Connecting to PostgreSQL database at: ${redactDatabaseUrl(databaseUrl)}`));
1060
1076
  return new PostgresDialect({
1061
1077
  pool: new PgPool({
1062
1078
  connectionString: databaseUrl
1063
1079
  })
1064
1080
  });
1065
1081
  case "mysql":
1066
- console.log(colors9.gray(`Connecting to MySQL database at: ${databaseUrl}`));
1082
+ console.log(colors9.gray(`Connecting to MySQL database at: ${redactDatabaseUrl(databaseUrl)}`));
1067
1083
  return new MysqlDialect({
1068
1084
  pool: createMysqlPool(databaseUrl)
1069
1085
  });
@@ -1098,6 +1114,14 @@ function startServer(client, schema, options) {
1098
1114
  console.log(`ZenStack proxy server is running on port: ${options.port}`);
1099
1115
  console.log(`You can visit ZenStack Studio at: ${colors9.blue("https://studio.zenstack.dev")}`);
1100
1116
  });
1117
+ server.on("error", (err) => {
1118
+ if (err.code === "EADDRINUSE") {
1119
+ console.error(colors9.red(`Port ${options.port} is already in use. Please choose a different port using -p option.`));
1120
+ } else {
1121
+ throw new CliError(`Failed to start the server: ${err.message}`);
1122
+ }
1123
+ process.exit(1);
1124
+ });
1101
1125
  process.on("SIGTERM", async () => {
1102
1126
  server.close(() => {
1103
1127
  console.log("\nZenStack proxy server closed");
@@ -1414,7 +1438,7 @@ Arguments following -- are passed to the seed script. E.g.: "zen db seed -- --us
1414
1438
  program.command("init").description("Initialize an existing project for ZenStack").argument("[path]", "project path", ".").addOption(noVersionCheckOption).action(initAction);
1415
1439
  program.command("check").description("Check a ZModel schema for syntax or semantic errors").addOption(schemaOption).addOption(noVersionCheckOption).action(checkAction);
1416
1440
  program.command("format").description("Format a ZModel schema file").addOption(schemaOption).addOption(noVersionCheckOption).action(formatAction);
1417
- program.command("proxy").alias("studio").description("Start the ZenStack proxy server").addOption(schemaOption).addOption(new Option("-p, --port <port>", "port to run the proxy server on").default(8008)).addOption(new Option("-o, --output <path>", "output directory for `zen generate` command")).addOption(new Option("-d, --databaseUrl <url>", "database connection URL")).addOption(new Option("-l, --logLevel <level>", "Query log levels (e.g., query, error)")).addOption(noVersionCheckOption).action(proxyAction);
1441
+ program.command("proxy").alias("studio").description("Start the ZenStack proxy server").addOption(schemaOption).addOption(new Option("-p, --port <port>", "port to run the proxy server on").default(2311)).addOption(new Option("-o, --output <path>", "output directory for `zen generate` command")).addOption(new Option("-d, --databaseUrl <url>", "database connection URL")).addOption(new Option("-l, --logLevel <level>", "Query log levels (e.g., query, error)")).addOption(noVersionCheckOption).action(proxyAction);
1418
1442
  program.addHelpCommand("help [command]", "Display help for a command");
1419
1443
  program.hook("preAction", async (_thisCommand, actionCommand) => {
1420
1444
  if (actionCommand.getOptionValue("versionCheck") !== false) {