diff --git a/package.json b/package.json index 1e4fa62..5456734 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/proxy", - "version": "0.2.5", + "version": "0.2.6", "description": "A CLI tool to run an Express server that proxies CRUD requests to a ZenStack backend", "main": "index.js", "publishConfig": { @@ -24,7 +24,7 @@ "author": "", "license": "MIT", "dependencies": { - "@prisma/adapter-better-sqlite3": "^6.2.1", + "@prisma/adapter-better-sqlite3": "^7.3.0", "@prisma/adapter-mariadb": "^7.1.0", "@prisma/adapter-pg": "^6.18.0", "@zenstackhq/server": "^2.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2457397..ab8d6fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@prisma/adapter-better-sqlite3': - specifier: ^6.2.1 - version: 6.19.1 + specifier: ^7.3.0 + version: 7.3.0 '@prisma/adapter-mariadb': specifier: ^7.1.0 version: 7.2.0 @@ -229,8 +229,8 @@ packages: cpu: [x64] os: [win32] - '@prisma/adapter-better-sqlite3@6.19.1': - resolution: {integrity: sha512-IWfnk1TlVyYJhTS1uGVLkRmkez86grMUJOH+bV3nHQQg3RJaPq0CwaqwKip0jzyOMKFKRp+rMeIcXkOIimhK1A==} + '@prisma/adapter-better-sqlite3@7.3.0': + resolution: {integrity: sha512-DkELPte3cHGCZI1isizw+IdQHFVMU5zASJ/deeBY4R2apQV0RCA8XDG54iGmMhwLMusGTYijDVYuB1ruxEy0KQ==} '@prisma/adapter-mariadb@7.2.0': resolution: {integrity: sha512-bOCnDgT79dWUW3RMf532ATeaRcDPLtbYoLvuvzg4Cb/KDnzc+yeSJDZTyVFg+C5peR0BN6jYzUnmQSiMyGd1UQ==} @@ -259,12 +259,18 @@ packages: '@prisma/debug@7.2.0': resolution: {integrity: sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw==} + '@prisma/debug@7.3.0': + resolution: {integrity: sha512-yh/tHhraCzYkffsI1/3a7SHX8tpgbJu1NPnuxS4rEpJdWAUDHUH25F1EDo6PPzirpyLNkgPPZdhojQK804BGtg==} + '@prisma/driver-adapter-utils@6.19.1': resolution: {integrity: sha512-W6Ds1lOZ2H6VGikchhOYs9dfKgPymfS/FJjtgYRqNTxJyHRyHsfTzGG+MOAupeLhZFHPWPA8eX12gNbgAGT8/g==} '@prisma/driver-adapter-utils@7.2.0': resolution: {integrity: sha512-gzrUcbI9VmHS24Uf+0+7DNzdIw7keglJsD5m/MHxQOU68OhGVzlphQRobLiDMn8CHNA2XN8uugwKjudVtnfMVQ==} + '@prisma/driver-adapter-utils@7.3.0': + resolution: {integrity: sha512-Wdlezh1ck0Rq2dDINkfSkwbR53q53//Eo1vVqVLwtiZ0I6fuWDGNPxwq+SNAIHnsU+FD/m3aIJKevH3vF13U3w==} + '@types/body-parser@1.19.6': resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} @@ -346,8 +352,9 @@ packages: bcryptjs@2.4.3: resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} - better-sqlite3@11.10.0: - resolution: {integrity: sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ==} + better-sqlite3@12.6.2: + resolution: {integrity: sha512-8VYKM3MjCa9WcaSAI3hzwhmyHVlH8tiGFwf0RlTsZPWJ1I5MkzjiudCo4KC4DxOaL/53A5B1sI/IbldNFDbsKA==} + engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x} bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -1168,10 +1175,10 @@ snapshots: '@esbuild/win32-x64@0.27.2': optional: true - '@prisma/adapter-better-sqlite3@6.19.1': + '@prisma/adapter-better-sqlite3@7.3.0': dependencies: - '@prisma/driver-adapter-utils': 6.19.1 - better-sqlite3: 11.10.0 + '@prisma/driver-adapter-utils': 7.3.0 + better-sqlite3: 12.6.2 '@prisma/adapter-mariadb@7.2.0': dependencies: @@ -1198,6 +1205,8 @@ snapshots: '@prisma/debug@7.2.0': {} + '@prisma/debug@7.3.0': {} + '@prisma/driver-adapter-utils@6.19.1': dependencies: '@prisma/debug': 6.19.1 @@ -1206,6 +1215,10 @@ snapshots: dependencies: '@prisma/debug': 7.2.0 + '@prisma/driver-adapter-utils@7.3.0': + dependencies: + '@prisma/debug': 7.3.0 + '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 @@ -1309,7 +1322,7 @@ snapshots: bcryptjs@2.4.3: {} - better-sqlite3@11.10.0: + better-sqlite3@12.6.2: dependencies: bindings: 1.5.0 prebuild-install: 7.1.3 diff --git a/src/server.ts b/src/server.ts index e12786d..74fcdc8 100644 --- a/src/server.ts +++ b/src/server.ts @@ -2,7 +2,7 @@ import * as path from 'path' import express from 'express' import cors from 'cors' import { ZenStackMiddleware } from '@zenstackhq/server/express' -import { GeneratorConfig, ZModelConfig } from './zmodel-parser' +import { ZModelConfig } from './zmodel-parser' import { getNodeModulesFolder, getPrismaVersion, getZenStackVersion } from './utils/version-utils' import { blue, grey } from 'colors' import semver from 'semver' @@ -46,6 +46,22 @@ function resolveSQLitePath(filePath: string, prismaSchemaDir: string): string { return path.join(prismaSchemaDir, filePath) } +function redactDatabaseUrl(url: string): string { + try { + const parsedUrl = new URL(url) + if (parsedUrl.password) { + parsedUrl.password = '***' + } + if (parsedUrl.username) { + parsedUrl.username = '***' + } + return parsedUrl.toString() + } catch { + // If URL parsing fails, return the original (might be a file path for SQLite) + return url + } +} + /** * Create database adapter based on provider */ @@ -79,7 +95,7 @@ function createAdapter(config: ZModelConfig, zmodelSchemaDir: string): any { case 'postgresql': { try { const { PrismaPg } = require('@prisma/adapter-pg') - console.log(grey(`Connecting to PostgreSQL database at: ${url}`)) + console.log(grey(`Connecting to PostgreSQL database at: ${redactDatabaseUrl(url)}`)) return new PrismaPg({ connectionString: url }) } catch (error) { throw new CliError( @@ -90,7 +106,7 @@ function createAdapter(config: ZModelConfig, zmodelSchemaDir: string): any { case 'mysql': { try { const { PrismaMariaDB } = require('@prisma/adapter-mariadb') - console.log(grey(`Connecting to MySQL/MariaDB database at: ${url}`)) + console.log(grey(`Connecting to MySQL/MariaDB database at: ${redactDatabaseUrl(url)}`)) return new PrismaMariaDB({ url, })