@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 +42 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +43 -12
- package/dist/index.js.map +1 -1
- package/package.json +12 -10
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";
|
|
@@ -226,7 +227,7 @@ function execPrisma(args, options) {
|
|
|
226
227
|
execPackage(`prisma ${args}`, _options);
|
|
227
228
|
return;
|
|
228
229
|
}
|
|
229
|
-
execSync(`node ${prismaPath} ${args}`, _options);
|
|
230
|
+
execSync(`node "${prismaPath}" ${args}`, _options);
|
|
230
231
|
}
|
|
231
232
|
__name(execPrisma, "execPrisma");
|
|
232
233
|
|
|
@@ -913,20 +914,23 @@ function handleSubProcessError2(err) {
|
|
|
913
914
|
__name(handleSubProcessError2, "handleSubProcessError");
|
|
914
915
|
|
|
915
916
|
// src/actions/proxy.ts
|
|
916
|
-
import { isDataSource as isDataSource2 } from "@zenstackhq/language/ast";
|
|
917
917
|
import { ZModelCodeGenerator } from "@zenstackhq/language";
|
|
918
|
+
import { isDataSource as isDataSource2 } from "@zenstackhq/language/ast";
|
|
918
919
|
import { getStringLiteral } from "@zenstackhq/language/utils";
|
|
919
|
-
import { SqliteDialect } from "@zenstackhq/orm/dialects/sqlite";
|
|
920
|
-
import { PostgresDialect } from "@zenstackhq/orm/dialects/postgres";
|
|
921
|
-
import SQLite from "better-sqlite3";
|
|
922
|
-
import { Pool } from "pg";
|
|
923
|
-
import path9 from "path";
|
|
924
920
|
import { ZenStackClient } from "@zenstackhq/orm";
|
|
921
|
+
import { MysqlDialect } from "@zenstackhq/orm/dialects/mysql";
|
|
922
|
+
import { PostgresDialect } from "@zenstackhq/orm/dialects/postgres";
|
|
923
|
+
import { SqliteDialect } from "@zenstackhq/orm/dialects/sqlite";
|
|
925
924
|
import { RPCApiHandler } from "@zenstackhq/server/api";
|
|
926
925
|
import { ZenStackMiddleware } from "@zenstackhq/server/express";
|
|
927
|
-
import
|
|
926
|
+
import SQLite from "better-sqlite3";
|
|
928
927
|
import colors9 from "colors";
|
|
928
|
+
import cors from "cors";
|
|
929
|
+
import express from "express";
|
|
929
930
|
import { createJiti as createJiti2 } from "jiti";
|
|
931
|
+
import { createPool as createMysqlPool } from "mysql2";
|
|
932
|
+
import path9 from "path";
|
|
933
|
+
import { Pool as PgPool } from "pg";
|
|
930
934
|
|
|
931
935
|
// src/utils/version-utils.ts
|
|
932
936
|
import colors8 from "colors";
|
|
@@ -977,7 +981,6 @@ async function getLatestVersion() {
|
|
|
977
981
|
__name(getLatestVersion, "getLatestVersion");
|
|
978
982
|
|
|
979
983
|
// src/actions/proxy.ts
|
|
980
|
-
import cors from "cors";
|
|
981
984
|
async function run9(options) {
|
|
982
985
|
const schemaFile = getSchemaFile(options.schema);
|
|
983
986
|
console.log(colors9.gray(`Loading ZModel schema from: ${schemaFile}`));
|
|
@@ -1038,6 +1041,21 @@ function evaluateUrl(value) {
|
|
|
1038
1041
|
}
|
|
1039
1042
|
}
|
|
1040
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");
|
|
1041
1059
|
function createDialect(provider, databaseUrl, outputPath) {
|
|
1042
1060
|
switch (provider) {
|
|
1043
1061
|
case "sqlite": {
|
|
@@ -1054,12 +1072,17 @@ function createDialect(provider, databaseUrl, outputPath) {
|
|
|
1054
1072
|
});
|
|
1055
1073
|
}
|
|
1056
1074
|
case "postgresql":
|
|
1057
|
-
console.log(colors9.gray(`Connecting to PostgreSQL database at: ${databaseUrl}`));
|
|
1075
|
+
console.log(colors9.gray(`Connecting to PostgreSQL database at: ${redactDatabaseUrl(databaseUrl)}`));
|
|
1058
1076
|
return new PostgresDialect({
|
|
1059
|
-
pool: new
|
|
1077
|
+
pool: new PgPool({
|
|
1060
1078
|
connectionString: databaseUrl
|
|
1061
1079
|
})
|
|
1062
1080
|
});
|
|
1081
|
+
case "mysql":
|
|
1082
|
+
console.log(colors9.gray(`Connecting to MySQL database at: ${redactDatabaseUrl(databaseUrl)}`));
|
|
1083
|
+
return new MysqlDialect({
|
|
1084
|
+
pool: createMysqlPool(databaseUrl)
|
|
1085
|
+
});
|
|
1063
1086
|
default:
|
|
1064
1087
|
throw new CliError(`Unsupported database provider: ${provider}`);
|
|
1065
1088
|
}
|
|
@@ -1091,6 +1114,14 @@ function startServer(client, schema, options) {
|
|
|
1091
1114
|
console.log(`ZenStack proxy server is running on port: ${options.port}`);
|
|
1092
1115
|
console.log(`You can visit ZenStack Studio at: ${colors9.blue("https://studio.zenstack.dev")}`);
|
|
1093
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
|
+
});
|
|
1094
1125
|
process.on("SIGTERM", async () => {
|
|
1095
1126
|
server.close(() => {
|
|
1096
1127
|
console.log("\nZenStack proxy server closed");
|
|
@@ -1407,7 +1438,7 @@ Arguments following -- are passed to the seed script. E.g.: "zen db seed -- --us
|
|
|
1407
1438
|
program.command("init").description("Initialize an existing project for ZenStack").argument("[path]", "project path", ".").addOption(noVersionCheckOption).action(initAction);
|
|
1408
1439
|
program.command("check").description("Check a ZModel schema for syntax or semantic errors").addOption(schemaOption).addOption(noVersionCheckOption).action(checkAction);
|
|
1409
1440
|
program.command("format").description("Format a ZModel schema file").addOption(schemaOption).addOption(noVersionCheckOption).action(formatAction);
|
|
1410
|
-
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(
|
|
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);
|
|
1411
1442
|
program.addHelpCommand("help [command]", "Display help for a command");
|
|
1412
1443
|
program.hook("preAction", async (_thisCommand, actionCommand) => {
|
|
1413
1444
|
if (actionCommand.getOptionValue("versionCheck") !== false) {
|