full site update

This commit is contained in:
2025-07-24 18:46:24 +02:00
parent bfe2b90d8d
commit 37a6e0ab31
6912 changed files with 540482 additions and 361712 deletions

View File

@@ -1,3 +1,17 @@
export function parseAnyDef() {
return {};
import { getRelativePath } from "../getRelativePath.js";
export function parseAnyDef(refs) {
if (refs.target !== "openAi") {
return {};
}
const anyDefinitionPath = [
...refs.basePath,
refs.definitionPath,
refs.openAiAnyTypeName,
];
refs.flags.hasReferencedOpenAiAnyType = true;
return {
$ref: refs.$refStrategy === "relative"
? getRelativePath(anyDefinitionPath, refs.currentPath)
: anyDefinitionPath.join("/"),
};
}

View File

@@ -1,6 +1,7 @@
import { parseDef } from "../parseDef.js";
import { parseAnyDef } from "./any.js";
export function parseEffectsDef(_def, refs) {
return refs.effectStrategy === "input"
? parseDef(_def.schema._def, refs)
: {};
: parseAnyDef(refs);
}

View File

@@ -1,5 +1,6 @@
import { parseDef } from "../parseDef.js";
import { parseRecordDef } from "./record.js";
import { parseAnyDef } from "./any.js";
export function parseMapDef(def, refs) {
if (refs.mapStrategy === "record") {
return parseRecordDef(def, refs);
@@ -7,11 +8,11 @@ export function parseMapDef(def, refs) {
const keys = parseDef(def.keyType._def, {
...refs,
currentPath: [...refs.currentPath, "items", "items", "0"],
}) || {};
}) || parseAnyDef(refs);
const values = parseDef(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "items", "items", "1"],
}) || {};
}) || parseAnyDef(refs);
return {
type: "array",
maxItems: 125,

View File

@@ -1,5 +1,11 @@
export function parseNeverDef() {
return {
not: {},
};
import { parseAnyDef } from "./any.js";
export function parseNeverDef(refs) {
return refs.target === "openAi"
? undefined
: {
not: parseAnyDef({
...refs,
currentPath: [...refs.currentPath, "not"],
}),
};
}

View File

@@ -1,4 +1,3 @@
import { ZodOptional } from "zod";
import { parseDef } from "../parseDef.js";
export function parseObjectDef(def, refs) {
const forceOptionalIntoNullable = refs.target === "openAi";
@@ -15,7 +14,7 @@ export function parseObjectDef(def, refs) {
}
let propOptional = safeIsOptional(propDef);
if (propOptional && forceOptionalIntoNullable) {
if (propDef instanceof ZodOptional) {
if (propDef._def.typeName === "ZodOptional") {
propDef = propDef._def.innerType;
}
if (!propDef.isNullable()) {

View File

@@ -1,4 +1,5 @@
import { parseDef } from "../parseDef.js";
import { parseAnyDef } from "./any.js";
export const parseOptionalDef = (def, refs) => {
if (refs.currentPath.toString() === refs.propertyPath?.toString()) {
return parseDef(def.innerType._def, refs);
@@ -11,10 +12,10 @@ export const parseOptionalDef = (def, refs) => {
? {
anyOf: [
{
not: {},
not: parseAnyDef(refs),
},
innerSchema,
],
}
: {};
: parseAnyDef(refs);
};

View File

@@ -2,6 +2,7 @@ import { ZodFirstPartyTypeKind, } from "zod";
import { parseDef } from "../parseDef.js";
import { parseStringDef } from "./string.js";
import { parseBrandedDef } from "./branded.js";
import { parseAnyDef } from "./any.js";
export function parseRecordDef(def, refs) {
if (refs.target === "openAi") {
console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
@@ -16,7 +17,7 @@ export function parseRecordDef(def, refs) {
[key]: parseDef(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "properties", key],
}) ?? {},
}) ?? parseAnyDef(refs),
}), {}),
additionalProperties: refs.rejectedAdditionalProperties,
};

View File

@@ -1,5 +1,6 @@
export function parseUndefinedDef() {
import { parseAnyDef } from "./any.js";
export function parseUndefinedDef(refs) {
return {
not: {},
not: parseAnyDef(refs),
};
}

View File

@@ -1,3 +1,4 @@
export function parseUnknownDef() {
return {};
import { parseAnyDef } from "./any.js";
export function parseUnknownDef(refs) {
return parseAnyDef(refs);
}