Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/parsing-run-tools.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import OpenAI from 'openai';
import z from 'zod';
import z from 'zod/v3';
import { zodFunction } from 'openai/helpers/zod';

const Table = z.enum(['orders', 'customers', 'products']);
Expand Down
2 changes: 1 addition & 1 deletion examples/parsing-stream.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { zodResponseFormat } from 'openai/helpers/zod';
import OpenAI from 'openai/index';
import { z } from 'zod';
import { z } from 'zod/v3';

const Step = z.object({
explanation: z.string(),
Expand Down
2 changes: 1 addition & 1 deletion examples/parsing-tools-stream.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { zodFunction } from 'openai/helpers/zod';
import OpenAI from 'openai/index';
import { z } from 'zod';
import { z } from 'zod/v3';

const GetWeatherArgs = z.object({
city: z.string(),
Expand Down
2 changes: 1 addition & 1 deletion examples/parsing-tools.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { zodFunction } from 'openai/helpers/zod';
import OpenAI from 'openai/index';
import { z } from 'zod';
import { z } from 'zod/v3';

const Table = z.enum(['orders', 'customers', 'products']);

Expand Down
2 changes: 1 addition & 1 deletion examples/parsing.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { zodResponseFormat } from 'openai/helpers/zod';
import OpenAI from 'openai/index';
import { z } from 'zod';
import { z } from 'zod/v3';

const Step = z.object({
explanation: z.string(),
Expand Down
2 changes: 1 addition & 1 deletion examples/responses/streaming-tools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { OpenAI } from 'openai';
import { zodResponsesFunction } from 'openai/helpers/zod';
import { z } from 'zod';
import { z } from 'zod/v3';

const Table = z.enum(['orders', 'customers', 'products']);
const Column = z.enum([
Expand Down
2 changes: 1 addition & 1 deletion examples/responses/structured-outputs-tools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { OpenAI } from 'openai';
import { zodResponsesFunction } from 'openai/helpers/zod';
import { z } from 'zod';
import { z } from 'zod/v3';

const Table = z.enum(['orders', 'customers', 'products']);
const Column = z.enum([
Expand Down
2 changes: 1 addition & 1 deletion examples/responses/structured-outputs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { OpenAI } from 'openai';
import { zodTextFormat } from 'openai/helpers/zod';
import { z } from 'zod';
import { z } from 'zod/v3';

const Step = z.object({
explanation: z.string(),
Expand Down
2 changes: 1 addition & 1 deletion examples/tool-call-helpers-zod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import OpenAI from 'openai';
import { zodFunction } from 'openai/helpers/zod';
import { z } from 'zod';
import { z } from 'zod/v3';

// gets API Key from environment variable OPENAI_API_KEY
const openai = new OpenAI();
Expand Down
2 changes: 1 addition & 1 deletion examples/ui-generation.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import OpenAI from 'openai';
import { z } from 'zod';
import { z } from 'zod/v3';
import { zodResponseFormat } from 'openai/helpers/zod';

const openai = new OpenAI();
Expand Down
6 changes: 3 additions & 3 deletions helpers.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ into a JSON schema, send it to the API and parse the response content back using
```ts
import { zodResponseFormat } from 'openai/helpers/zod';
import OpenAI from 'openai/index';
import { z } from 'zod';
import { z } from 'zod/v3';

const Step = z.object({
explanation: z.string(),
Expand Down Expand Up @@ -57,7 +57,7 @@ For example:
```ts
import { zodFunction } from 'openai/helpers/zod';
import OpenAI from 'openai/index';
import { z } from 'zod';
import { z } from 'zod/v3';

const Table = z.enum(['orders', 'customers', 'products']);

Expand Down Expand Up @@ -630,7 +630,7 @@ assistant's response to make sure it conforms to a schema. Paired with [`zod-to-

```ts
import OpenAI from 'openai';
import { z } from 'zod';
import { z } from 'zod/v3';
import { zodToJsonSchema } from 'zod-to-json-schema';

const client = new OpenAI();
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
"@swc/core": "^1.3.102",
"@swc/jest": "^0.2.29",
"@types/jest": "^29.4.0",
"@types/ws": "^8.5.13",
"@types/node": "^20.17.6",
"@types/ws": "^8.5.13",
"@typescript-eslint/eslint-plugin": "8.31.1",
"@typescript-eslint/parser": "8.31.1",
"eslint": "^9.20.1",
Expand All @@ -51,9 +51,9 @@
"tsconfig-paths": "^4.0.0",
"tslib": "^2.8.1",
"typescript": "5.8.3",
"typescript-eslint": "8.31.1",
"ws": "^8.18.0",
"zod": "^3.23.8",
"typescript-eslint": "8.31.1"
"zod": "^3.25 || ^4.0"
},
"bin": {
"openai": "bin/cli"
Expand All @@ -76,7 +76,7 @@
},
"peerDependencies": {
"ws": "^8.18.0",
"zod": "^3.23.8"
"zod": "^3.25 || ^4.0"
},
"peerDependenciesMeta": {
"ws": {
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/Options.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodSchema, ZodTypeDef } from 'zod';
import { ZodSchema, ZodTypeDef } from 'zod/v3';
import { Refs, Seen } from './Refs';
import { JsonSchema7Type } from './parseDef';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/Refs.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ZodTypeDef } from 'zod';
import type { ZodTypeDef } from 'zod/v3';
import { getDefaultOptions, Options, Targets } from './Options';
import { JsonSchema7Type } from './parseDef';
import { zodDef } from './util';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parseDef.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodFirstPartyTypeKind, ZodTypeDef } from 'zod';
import { ZodFirstPartyTypeKind, ZodTypeDef } from 'zod/v3';
import { JsonSchema7AnyType, parseAnyDef } from './parsers/any';
import { JsonSchema7ArrayType, parseArrayDef } from './parsers/array';
import { JsonSchema7BigintType, parseBigintDef } from './parsers/bigint';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/array.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodArrayDef, ZodFirstPartyTypeKind } from 'zod';
import { ZodArrayDef, ZodFirstPartyTypeKind } from 'zod/v3';
import { ErrorMessages, setResponseValueAndErrors } from '../errorMessages';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/bigint.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodBigIntDef } from 'zod';
import { ZodBigIntDef } from 'zod/v3';
import { Refs } from '../Refs';
import { ErrorMessages, setResponseValueAndErrors } from '../errorMessages';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/branded.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodBrandedDef } from 'zod';
import { ZodBrandedDef } from 'zod/v3';
import { parseDef } from '../parseDef';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/catch.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodCatchDef } from 'zod';
import { ZodCatchDef } from 'zod/v3';
import { parseDef } from '../parseDef';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/date.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodDateDef } from 'zod';
import { ZodDateDef } from 'zod/v3';
import { Refs } from '../Refs';
import { ErrorMessages, setResponseValueAndErrors } from '../errorMessages';
import { JsonSchema7NumberType } from './number';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/default.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodDefaultDef } from 'zod';
import { ZodDefaultDef } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/effects.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodEffectsDef } from 'zod';
import { ZodEffectsDef } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/enum.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodEnumDef } from 'zod';
import { ZodEnumDef } from 'zod/v3';

export type JsonSchema7EnumType = {
type: 'string';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/intersection.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodIntersectionDef } from 'zod';
import { ZodIntersectionDef } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';
import { JsonSchema7StringType } from './string';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/literal.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodLiteralDef } from 'zod';
import { ZodLiteralDef } from 'zod/v3';
import { Refs } from '../Refs';

export type JsonSchema7LiteralType =
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/map.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodMapDef } from 'zod';
import { ZodMapDef } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';
import { JsonSchema7RecordType, parseRecordDef } from './record';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/nativeEnum.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodNativeEnumDef } from 'zod';
import { ZodNativeEnumDef } from 'zod/v3';

export type JsonSchema7NativeEnumType = {
type: 'string' | 'number' | ['string', 'number'];
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/nullable.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodNullableDef } from 'zod';
import { ZodNullableDef } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';
import { JsonSchema7NullType } from './null';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/number.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodNumberDef } from 'zod';
import { ZodNumberDef } from 'zod/v3';
import { addErrorMessage, ErrorMessages, setResponseValueAndErrors } from '../errorMessages';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/object.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodObjectDef } from 'zod';
import { ZodObjectDef } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/optional.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodOptionalDef } from 'zod';
import { ZodOptionalDef } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/pipeline.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodPipelineDef } from 'zod';
import { ZodPipelineDef } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';
import { JsonSchema7AllOfType } from './intersection';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/promise.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodPromiseDef } from 'zod';
import { ZodPromiseDef } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/readonly.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodReadonlyDef } from 'zod';
import { ZodReadonlyDef } from 'zod/v3';
import { parseDef } from '../parseDef';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/record.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodFirstPartyTypeKind, ZodMapDef, ZodRecordDef, ZodTypeAny } from 'zod';
import { ZodFirstPartyTypeKind, ZodMapDef, ZodRecordDef, ZodTypeAny } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';
import { JsonSchema7EnumType } from './enum';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/set.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodSetDef } from 'zod';
import { ZodSetDef } from 'zod/v3';
import { ErrorMessages, setResponseValueAndErrors } from '../errorMessages';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/string.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// @ts-nocheck
import { ZodStringDef } from 'zod';
import { ZodStringDef } from 'zod/v3';
import { ErrorMessages, setResponseValueAndErrors } from '../errorMessages';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/tuple.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodTupleDef, ZodTupleItems, ZodTypeAny } from 'zod';
import { ZodTupleDef, ZodTupleItems, ZodTypeAny } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/parsers/union.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodDiscriminatedUnionDef, ZodLiteralDef, ZodTypeAny, ZodUnionDef } from 'zod';
import { ZodDiscriminatedUnionDef, ZodLiteralDef, ZodTypeAny, ZodUnionDef } from 'zod/v3';
import { JsonSchema7Type, parseDef } from '../parseDef';
import { Refs } from '../Refs';

Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/util.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ZodSchema, ZodTypeDef } from 'zod';
import type { ZodSchema, ZodTypeDef } from 'zod/v3';

export const zodDef = (zodSchema: ZodSchema | ZodTypeDef): ZodTypeDef => {
return '_def' in zodSchema ? zodSchema._def : zodSchema;
Expand Down
2 changes: 1 addition & 1 deletion src/_vendor/zod-to-json-schema/zodToJsonSchema.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodSchema } from 'zod';
import { ZodSchema } from 'zod/v3';
import { Options, Targets } from './Options';
import { JsonSchema7Type, parseDef } from './parseDef';
import { getRefs } from './Refs';
Expand Down
2 changes: 1 addition & 1 deletion src/helpers/zod.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ResponseFormatJSONSchema } from '../resources/index';
import type { infer as zodInfer, ZodType } from 'zod';
import type { infer as zodInfer, ZodType } from 'zod/v3';
import {
AutoParseableResponseFormat,
AutoParseableTextFormat,
Expand Down
2 changes: 1 addition & 1 deletion tests/helpers/zod.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { zodResponseFormat } from 'openai/helpers/zod';
import { z } from 'zod';
import { z } from 'zod/v3';

describe('zodResponseFormat', () => {
it('does the thing', () => {
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/ChatCompletionStream.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { zodResponseFormat } from 'openai/helpers/zod';
import { ChatCompletionTokenLogprob } from 'openai/resources';
import { z } from 'zod';
import { z } from 'zod/v3';
import { makeStreamSnapshotRequest } from '../utils/mock-snapshots';

jest.setTimeout(1000 * 30);
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/parser.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { z } from 'zod';
import { z } from 'zod/v3';
import { zodResponseFormat } from 'openai/helpers/zod';
import { makeSnapshotRequest } from '../utils/mock-snapshots';

Expand Down
Loading