@zenstackhq/cli 3.3.0-beta.3 → 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.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");
@@ -243,7 +244,7 @@ function execPrisma(args, options) {
243
244
  execPackage(`prisma ${args}`, _options);
244
245
  return;
245
246
  }
246
- execSync(`node ${prismaPath} ${args}`, _options);
247
+ execSync(`node "${prismaPath}" ${args}`, _options);
247
248
  }
248
249
  __name(execPrisma, "execPrisma");
249
250
 
@@ -930,20 +931,23 @@ function handleSubProcessError2(err) {
930
931
  __name(handleSubProcessError2, "handleSubProcessError");
931
932
 
932
933
  // src/actions/proxy.ts
933
- var import_ast3 = require("@zenstackhq/language/ast");
934
934
  var import_language4 = require("@zenstackhq/language");
935
+ var import_ast3 = require("@zenstackhq/language/ast");
935
936
  var import_utils2 = require("@zenstackhq/language/utils");
936
- var import_sqlite = require("@zenstackhq/orm/dialects/sqlite");
937
- var import_postgres = require("@zenstackhq/orm/dialects/postgres");
938
- var import_better_sqlite3 = __toESM(require("better-sqlite3"), 1);
939
- var import_pg = require("pg");
940
- var import_node_path9 = __toESM(require("path"), 1);
941
937
  var import_orm = require("@zenstackhq/orm");
938
+ var import_mysql = require("@zenstackhq/orm/dialects/mysql");
939
+ var import_postgres = require("@zenstackhq/orm/dialects/postgres");
940
+ var import_sqlite = require("@zenstackhq/orm/dialects/sqlite");
942
941
  var import_api = require("@zenstackhq/server/api");
943
942
  var import_express = require("@zenstackhq/server/express");
944
- var import_express2 = __toESM(require("express"), 1);
943
+ var import_better_sqlite3 = __toESM(require("better-sqlite3"), 1);
945
944
  var import_colors9 = __toESM(require("colors"), 1);
945
+ var import_cors = __toESM(require("cors"), 1);
946
+ var import_express2 = __toESM(require("express"), 1);
946
947
  var import_jiti2 = require("jiti");
948
+ var import_mysql2 = require("mysql2");
949
+ var import_node_path9 = __toESM(require("path"), 1);
950
+ var import_pg = require("pg");
947
951
 
948
952
  // src/utils/version-utils.ts
949
953
  var import_colors8 = __toESM(require("colors"), 1);
@@ -995,7 +999,6 @@ async function getLatestVersion() {
995
999
  __name(getLatestVersion, "getLatestVersion");
996
1000
 
997
1001
  // src/actions/proxy.ts
998
- var import_cors = __toESM(require("cors"), 1);
999
1002
  var import_meta3 = {};
1000
1003
  async function run9(options) {
1001
1004
  const schemaFile = getSchemaFile(options.schema);
@@ -1057,6 +1060,21 @@ function evaluateUrl(value) {
1057
1060
  }
1058
1061
  }
1059
1062
  __name(evaluateUrl, "evaluateUrl");
1063
+ function redactDatabaseUrl(url) {
1064
+ try {
1065
+ const parsedUrl = new URL(url);
1066
+ if (parsedUrl.password) {
1067
+ parsedUrl.password = "***";
1068
+ }
1069
+ if (parsedUrl.username) {
1070
+ parsedUrl.username = "***";
1071
+ }
1072
+ return parsedUrl.toString();
1073
+ } catch {
1074
+ return url;
1075
+ }
1076
+ }
1077
+ __name(redactDatabaseUrl, "redactDatabaseUrl");
1060
1078
  function createDialect(provider, databaseUrl, outputPath) {
1061
1079
  switch (provider) {
1062
1080
  case "sqlite": {
@@ -1073,12 +1091,17 @@ function createDialect(provider, databaseUrl, outputPath) {
1073
1091
  });
1074
1092
  }
1075
1093
  case "postgresql":
1076
- console.log(import_colors9.default.gray(`Connecting to PostgreSQL database at: ${databaseUrl}`));
1094
+ console.log(import_colors9.default.gray(`Connecting to PostgreSQL database at: ${redactDatabaseUrl(databaseUrl)}`));
1077
1095
  return new import_postgres.PostgresDialect({
1078
1096
  pool: new import_pg.Pool({
1079
1097
  connectionString: databaseUrl
1080
1098
  })
1081
1099
  });
1100
+ case "mysql":
1101
+ console.log(import_colors9.default.gray(`Connecting to MySQL database at: ${redactDatabaseUrl(databaseUrl)}`));
1102
+ return new import_mysql.MysqlDialect({
1103
+ pool: (0, import_mysql2.createPool)(databaseUrl)
1104
+ });
1082
1105
  default:
1083
1106
  throw new CliError(`Unsupported database provider: ${provider}`);
1084
1107
  }
@@ -1110,6 +1133,14 @@ function startServer(client, schema, options) {
1110
1133
  console.log(`ZenStack proxy server is running on port: ${options.port}`);
1111
1134
  console.log(`You can visit ZenStack Studio at: ${import_colors9.default.blue("https://studio.zenstack.dev")}`);
1112
1135
  });
1136
+ server.on("error", (err) => {
1137
+ if (err.code === "EADDRINUSE") {
1138
+ console.error(import_colors9.default.red(`Port ${options.port} is already in use. Please choose a different port using -p option.`));
1139
+ } else {
1140
+ throw new CliError(`Failed to start the server: ${err.message}`);
1141
+ }
1142
+ process.exit(1);
1143
+ });
1113
1144
  process.on("SIGTERM", async () => {
1114
1145
  server.close(() => {
1115
1146
  console.log("\nZenStack proxy server closed");
@@ -1427,7 +1458,7 @@ Arguments following -- are passed to the seed script. E.g.: "zen db seed -- --us
1427
1458
  program.command("init").description("Initialize an existing project for ZenStack").argument("[path]", "project path", ".").addOption(noVersionCheckOption).action(initAction);
1428
1459
  program.command("check").description("Check a ZModel schema for syntax or semantic errors").addOption(schemaOption).addOption(noVersionCheckOption).action(checkAction);
1429
1460
  program.command("format").description("Format a ZModel schema file").addOption(schemaOption).addOption(noVersionCheckOption).action(formatAction);
1430
- 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(8008)).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);
1461
+ 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);
1431
1462
  program.addHelpCommand("help [command]", "Display help for a command");
1432
1463
  program.hook("preAction", async (_thisCommand, actionCommand) => {
1433
1464
  if (actionCommand.getOptionValue("versionCheck") !== false) {