diff --git a/package.json b/package.json index 8d38ad648..40348d428 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zenstack-monorepo", - "version": "2.13.1", + "version": "2.13.2", "description": "", "scripts": { "build": "pnpm -r --filter=\"!./packages/ide/*\" build", diff --git a/packages/ide/jetbrains/build.gradle.kts b/packages/ide/jetbrains/build.gradle.kts index 6ab980b4c..036194c12 100644 --- a/packages/ide/jetbrains/build.gradle.kts +++ b/packages/ide/jetbrains/build.gradle.kts @@ -9,7 +9,7 @@ plugins { } group = "dev.zenstack" -version = "2.13.1" +version = "2.13.2" repositories { mavenCentral() diff --git a/packages/ide/jetbrains/package.json b/packages/ide/jetbrains/package.json index 32e36bc9f..9b9d427d1 100644 --- a/packages/ide/jetbrains/package.json +++ b/packages/ide/jetbrains/package.json @@ -1,6 +1,6 @@ { "name": "jetbrains", - "version": "2.13.1", + "version": "2.13.2", "displayName": "ZenStack JetBrains IDE Plugin", "description": "ZenStack JetBrains IDE plugin", "homepage": "https://zenstack.dev", diff --git a/packages/language/package.json b/packages/language/package.json index bd4786008..8d6c9a776 100644 --- a/packages/language/package.json +++ b/packages/language/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/language", - "version": "2.13.1", + "version": "2.13.2", "displayName": "ZenStack modeling language compiler", "description": "ZenStack modeling language compiler", "homepage": "https://zenstack.dev", diff --git a/packages/misc/redwood/package.json b/packages/misc/redwood/package.json index 893067229..9ce12f8b0 100644 --- a/packages/misc/redwood/package.json +++ b/packages/misc/redwood/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/redwood", "displayName": "ZenStack RedwoodJS Integration", - "version": "2.13.1", + "version": "2.13.2", "description": "CLI and runtime for integrating ZenStack with RedwoodJS projects.", "repository": { "type": "git", diff --git a/packages/plugins/openapi/package.json b/packages/plugins/openapi/package.json index 9cabb92fb..98e07222d 100644 --- a/packages/plugins/openapi/package.json +++ b/packages/plugins/openapi/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/openapi", "displayName": "ZenStack Plugin and Runtime for OpenAPI", - "version": "2.13.1", + "version": "2.13.2", "description": "ZenStack plugin and runtime supporting OpenAPI", "main": "index.js", "repository": { diff --git a/packages/plugins/swr/package.json b/packages/plugins/swr/package.json index faa529bef..8fbdd7f2d 100644 --- a/packages/plugins/swr/package.json +++ b/packages/plugins/swr/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/swr", "displayName": "ZenStack plugin for generating SWR hooks", - "version": "2.13.1", + "version": "2.13.2", "description": "ZenStack plugin for generating SWR hooks", "main": "index.js", "repository": { diff --git a/packages/plugins/tanstack-query/package.json b/packages/plugins/tanstack-query/package.json index b6b0ec3c6..5cadd9463 100644 --- a/packages/plugins/tanstack-query/package.json +++ b/packages/plugins/tanstack-query/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/tanstack-query", "displayName": "ZenStack plugin for generating tanstack-query hooks", - "version": "2.13.1", + "version": "2.13.2", "description": "ZenStack plugin for generating tanstack-query hooks", "main": "index.js", "exports": { diff --git a/packages/plugins/trpc/package.json b/packages/plugins/trpc/package.json index 79ffae8c1..b6e67e409 100644 --- a/packages/plugins/trpc/package.json +++ b/packages/plugins/trpc/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/trpc", "displayName": "ZenStack plugin for tRPC", - "version": "2.13.1", + "version": "2.13.2", "description": "ZenStack plugin for tRPC", "main": "index.js", "repository": { diff --git a/packages/plugins/trpc/tests/projects/t3-trpc-v11/package-lock.json b/packages/plugins/trpc/tests/projects/t3-trpc-v11/package-lock.json index 62772141c..4b5f352fc 100644 --- a/packages/plugins/trpc/tests/projects/t3-trpc-v11/package-lock.json +++ b/packages/plugins/trpc/tests/projects/t3-trpc-v11/package-lock.json @@ -1964,7 +1964,7 @@ "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "is-core-module": "^2.13.2", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.7", diff --git a/packages/runtime/package.json b/packages/runtime/package.json index bd67f8a40..d12f7e43f 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/runtime", "displayName": "ZenStack Runtime Library", - "version": "2.13.1", + "version": "2.13.2", "description": "Runtime of ZenStack for both client-side and server-side environments.", "repository": { "type": "git", diff --git a/packages/schema/package.json b/packages/schema/package.json index 58b0dfe58..53ba1d5f5 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -3,7 +3,7 @@ "publisher": "zenstack", "displayName": "ZenStack Language Tools", "description": "FullStack enhancement for Prisma ORM: seamless integration from database to UI", - "version": "2.13.1", + "version": "2.13.2", "author": { "name": "ZenStack Team" }, diff --git a/packages/schema/src/plugins/enhancer/enhance/index.ts b/packages/schema/src/plugins/enhancer/enhance/index.ts index 8bc1c393d..eaaa198aa 100644 --- a/packages/schema/src/plugins/enhancer/enhance/index.ts +++ b/packages/schema/src/plugins/enhancer/enhance/index.ts @@ -110,22 +110,25 @@ export class EnhancerGenerator { const prismaImport = getPrismaClientImportSpec(this.outDir, this.options); let prismaTypesFixed = false; - let resultPrismaImport = prismaImport; + let resultPrismaTypeImport = prismaImport; if (this.needsLogicalClient) { prismaTypesFixed = true; - resultPrismaImport = `${LOGICAL_CLIENT_GENERATION_PATH}/index-fixed`; + resultPrismaTypeImport = `${LOGICAL_CLIENT_GENERATION_PATH}/index-fixed`; const result = await this.generateLogicalPrisma(); dmmf = result.dmmf; } // reexport PrismaClient types (original or fixed) - const prismaDts = this.project.createSourceFile( + const modelsDts = this.project.createSourceFile( path.join(this.outDir, 'models.d.ts'), - `export type * from '${resultPrismaImport}';`, + `export type * from '${resultPrismaTypeImport}';`, { overwrite: true } ); - await prismaDts.save(); + await modelsDts.save(); + + // reexport values from the original PrismaClient (enums, etc.) + fs.writeFileSync(path.join(this.outDir, 'models.js'), `module.exports = require('${prismaImport}');`); const authDecl = getAuthDecl(getDataModelAndTypeDefs(this.model)); const authTypes = authDecl ? generateAuthType(this.model, authDecl) : ''; @@ -151,7 +154,7 @@ ${ ${ prismaTypesFixed - ? this.createLogicalPrismaImports(prismaImport, resultPrismaImport, target) + ? this.createLogicalPrismaImports(prismaImport, resultPrismaTypeImport, target) : this.createSimplePrismaImports(prismaImport, target) } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 1f4f88f94..257b7603c 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/sdk", - "version": "2.13.1", + "version": "2.13.2", "description": "ZenStack plugin development SDK", "main": "index.js", "scripts": { diff --git a/packages/server/package.json b/packages/server/package.json index 0f1614df6..510f76109 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/server", - "version": "2.13.1", + "version": "2.13.2", "displayName": "ZenStack Server-side Adapters", "description": "ZenStack server-side adapters", "homepage": "https://zenstack.dev", diff --git a/packages/testtools/package.json b/packages/testtools/package.json index fab829fe2..d10345c0c 100644 --- a/packages/testtools/package.json +++ b/packages/testtools/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/testtools", - "version": "2.13.1", + "version": "2.13.2", "description": "ZenStack Test Tools", "main": "index.js", "private": true, diff --git a/tests/regression/tests/issue-2065.test.ts b/tests/regression/tests/issue-2065.test.ts new file mode 100644 index 000000000..cf186b4fe --- /dev/null +++ b/tests/regression/tests/issue-2065.test.ts @@ -0,0 +1,31 @@ +import { loadSchema } from '@zenstackhq/testtools'; + +describe('issue [...]', () => { + it('regression', async () => { + const { zodSchemas } = await loadSchema( + ` + enum FooType { + Bar + Baz + } + + type Meta { + test String? + } + + model Foo { + id String @id @db.Uuid @default(uuid()) + type FooType + meta Meta @json + + @@validate(type == Bar, "FooType must be Bar") + } + `, + { + provider: 'postgresql', + pushDb: false, + } + ); + expect(zodSchemas.models.FooSchema).toBeTruthy(); + }); +}); diff --git a/tests/regression/tests/issue-foo.test.ts b/tests/regression/tests/issue-foo.test.ts new file mode 100644 index 000000000..19cf246ef --- /dev/null +++ b/tests/regression/tests/issue-foo.test.ts @@ -0,0 +1,36 @@ +import { loadSchema } from '@zenstackhq/testtools'; + +describe('issue [...]', () => { + it('regression', async () => { + const { zodSchemas } = await loadSchema( + ` + enum FooType { + Bar + Baz + } + type Meta { + test String? + } + model Foo { + id String @id @db.Uuid @default(uuid()) + type FooType + meta Meta @json + @@validate(type == Bar, "FooType must be Bar") + } + `, + { + provider: 'postgresql', + pushDb: false, + } + ); + expect( + zodSchemas.models.FooSchema.safeParse({ + id: '123e4567-e89b-12d3-a456-426614174000', + type: 'Bar', + meta: { test: 'test' }, + }) + ).toMatchObject({ + success: true, + }); + }); +});