Skip to content

Commit 29bd614

Browse files
Update dependency zod to v4 (#15)
* Update dependency zod to v4 * remove unused eslint-disable directives * Update zod to v4 and remove zod-to-json-schema dependency * Update DeploymentConfig and ModelParameters to accept additional parameters --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Richter <github@crftartsc.de>
1 parent d870017 commit 29bd614

File tree

9 files changed

+41
-35
lines changed

9 files changed

+41
-35
lines changed

pr-review/package-lock.json

Lines changed: 13 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pr-review/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@
2727
"mollitia": "0.2.0",
2828
"octokit": "5.0.3",
2929
"parse-diff": "0.11.1",
30-
"zod": "3.25.76",
31-
"zod-to-json-schema": "3.24.6"
30+
"zod": "4.0.5"
3231
},
3332
"devDependencies": {
3433
"@eslint/js": "9.31.0",

pr-review/src/ai-core-client.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { ChatMessage, OrchestrationClient, TokenUsage } from "@sap-ai-sdk/orches
33
import axios from "axios"
44
import { inspect } from "node:util"
55
import { z } from "zod"
6-
import { zodToJsonSchema } from "zod-to-json-schema"
76
import { config } from "./config.js"
87

98
let modelName = config.model
@@ -63,7 +62,7 @@ export async function chatCompletion(messages: ChatMessage[]): Promise<string> {
6362
*/
6463
export async function chatCompletionWithJsonSchema<T extends z.ZodTypeAny>(zodSchema: T, messages: ChatMessage[]): Promise<z.infer<T>> {
6564
process.env.AICORE_SERVICE_KEY = JSON.stringify(config.aicoreServiceKey)
66-
const jsonSchema = zodToJsonSchema(zodSchema)
65+
const jsonSchema = z.toJSONSchema(zodSchema)
6766

6867
let responseJson
6968
try {
@@ -102,11 +101,11 @@ export async function chatCompletionWithJsonSchema<T extends z.ZodTypeAny>(zodSc
102101
core.info(responseJson)
103102
responseJson = responseJson.slice(responseJson.indexOf("{"), responseJson.lastIndexOf("}") + 1)
104103
try {
105-
return zodSchema.parse(JSON.parse(responseJson)) // eslint-disable-line @typescript-eslint/no-unsafe-return
104+
return zodSchema.parse(JSON.parse(responseJson))
106105
} catch (error) {
107106
if (error instanceof Error) core.warning(`Failed to parse JSON. Trying to replace newlines. Error was: ${error.message}`)
108107
const json = responseJson.replaceAll(/"(?:[^"\\]|\\.)*"/g, matched => matched.replaceAll("\n", String.raw`\n`))
109-
return zodSchema.parse(JSON.parse(json)) // eslint-disable-line @typescript-eslint/no-unsafe-return
108+
return zodSchema.parse(JSON.parse(json))
110109
}
111110
}
112111

pr-review/src/config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ if (process.env.NODE_ENV === "development") {
2727
function parseInput<T extends z.ZodTypeAny>(zodSchema: T, name: string): z.infer<T> {
2828
const value: string = core.getInput(name)
2929
try {
30-
return zodSchema.parse(value) // eslint-disable-line @typescript-eslint/no-unsafe-return
30+
return zodSchema.parse(value)
3131
} catch (error) {
3232
if (error instanceof Error) {
3333
core.error(`Failed to parse input "${name}": \`${value}\``)
@@ -40,7 +40,7 @@ function parseInput<T extends z.ZodTypeAny>(zodSchema: T, name: string): z.infer
4040
function parseInputAsJson<T extends z.ZodTypeAny>(zodSchema: T, name: string): z.infer<T> {
4141
const json: string = core.getInput(name)
4242
try {
43-
return zodSchema.parse(JSON.parse(json)) // eslint-disable-line @typescript-eslint/no-unsafe-return
43+
return zodSchema.parse(JSON.parse(json))
4444
} catch (error) {
4545
if (error instanceof Error) {
4646
core.error(`Failed to parse input "${name}": \`${json}\``)
@@ -56,7 +56,7 @@ function parseInputAsArray<T extends z.ZodTypeAny>(zodSchema: T, name: string):
5656
.split(/[\n,]/)
5757
.map(v => v.trim())
5858
.filter(Boolean)
59-
.map(v => zodSchema.parse(v) as z.infer<T>) // eslint-disable-line @typescript-eslint/no-unsafe-return
59+
.map(v => zodSchema.parse(v) as z.infer<T>)
6060
}
6161

6262
function setSecret<T>(value: T): T {

pr-review/src/zod-schema.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ export const ModelName: ZodType<ChatModel> = z.string()
3232
export type ModelName = z.infer<typeof ModelName>
3333

3434
// DeploymentConfig
35-
export const DeploymentConfig: ZodType<ResourceGroupConfig> = z.record(z.any())
35+
export const DeploymentConfig: ZodType<ResourceGroupConfig> = z.record(z.any(), z.any())
3636
export type DeploymentConfig = z.infer<typeof DeploymentConfig>
3737

3838
// ModelParameters
39-
export const ModelParameters: ZodType<LlmModelParams> = z.record(z.any())
39+
export const ModelParameters: ZodType<LlmModelParams> = z.record(z.any(), z.any())
4040
export type ModelParameters = z.infer<typeof ModelParameters>

pr-summary/package-lock.json

Lines changed: 13 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pr-summary/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"mollitia": "0.2.0",
2727
"octokit": "5.0.3",
2828
"parse-diff": "0.11.1",
29-
"zod": "3.25.76"
29+
"zod": "4.0.5"
3030
},
3131
"devDependencies": {
3232
"@eslint/js": "9.31.0",

pr-summary/src/config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ if (process.env.NODE_ENV === "development") {
2727
function parseInput<T extends z.ZodTypeAny>(zodSchema: T, name: string): z.infer<T> {
2828
const value: string = core.getInput(name)
2929
try {
30-
return zodSchema.parse(value) // eslint-disable-line @typescript-eslint/no-unsafe-return
30+
return zodSchema.parse(value)
3131
} catch (error) {
3232
if (error instanceof Error) {
3333
core.error(`Failed to parse input "${name}": \`${value}\``)
@@ -40,7 +40,7 @@ function parseInput<T extends z.ZodTypeAny>(zodSchema: T, name: string): z.infer
4040
function parseInputAsJson<T extends z.ZodTypeAny>(zodSchema: T, name: string): z.infer<T> {
4141
const json: string = core.getInput(name)
4242
try {
43-
return zodSchema.parse(JSON.parse(json)) // eslint-disable-line @typescript-eslint/no-unsafe-return
43+
return zodSchema.parse(JSON.parse(json))
4444
} catch (error) {
4545
if (error instanceof Error) {
4646
core.error(`Failed to parse input "${name}": \`${json}\``)
@@ -56,7 +56,7 @@ function parseInputAsArray<T extends z.ZodTypeAny>(zodSchema: T, name: string):
5656
.split(/[\n,]/)
5757
.map(v => v.trim())
5858
.filter(Boolean)
59-
.map(v => zodSchema.parse(v) as z.infer<T>) // eslint-disable-line @typescript-eslint/no-unsafe-return
59+
.map(v => zodSchema.parse(v) as z.infer<T>)
6060
}
6161

6262
function setSecret<T>(value: T): T {

pr-summary/src/zod-schema.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ export const ModelName: ZodType<ChatModel> = z.string()
3232
export type ModelName = z.infer<typeof ModelName>
3333

3434
// DeploymentConfig
35-
export const DeploymentConfig: ZodType<ResourceGroupConfig> = z.record(z.any())
35+
export const DeploymentConfig: ZodType<ResourceGroupConfig> = z.record(z.any(), z.any())
3636
export type DeploymentConfig = z.infer<typeof DeploymentConfig>
3737

3838
// ModelParameters
39-
export const ModelParameters: ZodType<LlmModelParams> = z.record(z.any())
39+
export const ModelParameters: ZodType<LlmModelParams> = z.record(z.any(), z.any())
4040
export type ModelParameters = z.infer<typeof ModelParameters>

0 commit comments

Comments
 (0)