full site update
This commit is contained in:
37
node_modules/zod-to-json-schema/README.md
generated
vendored
37
node_modules/zod-to-json-schema/README.md
generated
vendored
@@ -19,24 +19,6 @@ Does what it says on the tin; converts [Zod schemas](https://github.com/colinhac
|
||||
A great big thank you to our amazing sponsors! Please consider joining them through my [GitHub Sponsors page](https://github.com/sponsors/StefanTerdell). Every cent helps, but these fellas have really gone above and beyond 💚:
|
||||
|
||||
<table align="center" style="justify-content: center;align-items: center;display: flex;">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<p></p>
|
||||
<p>
|
||||
<a href="https://retool.com/?ref=stefanterdell&utm_source=github&utm_medium=referral&utm_campaign=stefanterdell">
|
||||
<picture height="45px">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/colinhacks/zod/assets/3084745/ac65013f-aeb4-48dd-a2ee-41040b69cbe6">
|
||||
<img alt="stainless" height="45px" src="https://github.com/colinhacks/zod/assets/3084745/5ef4c11b-efeb-4495-90a8-41b83f798600">
|
||||
</picture>
|
||||
</a>
|
||||
<br />
|
||||
Build AI apps and workflows with <a href="https://retool.com/products/ai?ref=stefanterdell&utm_source=github&utm_medium=referral&utm_campaign=stefanterdell">Retool AI</a>
|
||||
<br/>
|
||||
<a href="https://retool.com/?ref=stefanterdell&utm_source=github&utm_medium=referral&utm_campaign=stefanterdell" style="text-decoration:none;">retool.com</a>
|
||||
</p>
|
||||
<p></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<p></p>
|
||||
@@ -57,6 +39,24 @@ A great big thank you to our amazing sponsors! Please consider joining them thro
|
||||
<p></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<p></p>
|
||||
<p>
|
||||
<a href="https://retool.com/?ref=stefanterdell&utm_source=github&utm_medium=referral&utm_campaign=stefanterdell">
|
||||
<picture height="45px">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/colinhacks/zod/assets/3084745/ac65013f-aeb4-48dd-a2ee-41040b69cbe6">
|
||||
<img alt="stainless" height="45px" src="https://github.com/colinhacks/zod/assets/3084745/5ef4c11b-efeb-4495-90a8-41b83f798600">
|
||||
</picture>
|
||||
</a>
|
||||
<br />
|
||||
Build AI apps and workflows with <a href="https://retool.com/products/ai?ref=stefanterdell&utm_source=github&utm_medium=referral&utm_campaign=stefanterdell">Retool AI</a>
|
||||
<br/>
|
||||
<a href="https://retool.com/?ref=stefanterdell&utm_source=github&utm_medium=referral&utm_campaign=stefanterdell" style="text-decoration:none;">retool.com</a>
|
||||
</p>
|
||||
<p></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Usage
|
||||
@@ -138,6 +138,7 @@ Instead of the schema name (or nothing), you can pass an options object as the s
|
||||
| **rejectedAdditionalProperties**?: `false` \| `undefined` | What value to give `additionalProperties` when rejected. See the section on additional properties for details. |
|
||||
| **override**?: callback | See section |
|
||||
| **postProcess**?: callback | See section |
|
||||
| **openAiAnyTypeName**?: string | Decides the name of a Json schema used to allow semi-arbitrary values in Open AI structured output. If any value in the Zod-schema resolves to any "any"-type schema it will reference a definition of this name. If no such definition is provided a default Json schema will be used. Defaults to "OpenAiAnyType" |
|
||||
|
||||
### Definitions
|
||||
|
||||
|
1
node_modules/zod-to-json-schema/changelog.md
generated
vendored
1
node_modules/zod-to-json-schema/changelog.md
generated
vendored
@@ -2,6 +2,7 @@
|
||||
|
||||
| Version | Change |
|
||||
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 3.24.6 | Removed use of instanceOf to check for optional properties as differing package versions could produce intermittent bugs. Added OpenAiAnyType to work around their schema restrictions. |
|
||||
| 3.24.5 | Update .npmignore to drop 2 mb of test files. Thanks [Misha Kaletsky](https://github.com/mmkal)! |
|
||||
| 3.24.4 | Added options to set the value of additionalProperties in objects and record |
|
||||
| 3.24.3 | Adds postProcess callback option |
|
||||
|
1
node_modules/zod-to-json-schema/dist/cjs/Options.js
generated
vendored
1
node_modules/zod-to-json-schema/dist/cjs/Options.js
generated
vendored
@@ -37,6 +37,7 @@ exports.defaultOptions = {
|
||||
emailStrategy: "format:email",
|
||||
base64Strategy: "contentEncoding:base64",
|
||||
nameStrategy: "ref",
|
||||
openAiAnyTypeName: "OpenAiAnyType"
|
||||
};
|
||||
const getDefaultOptions = (options) => (typeof options === "string"
|
||||
? {
|
||||
|
1
node_modules/zod-to-json-schema/dist/cjs/Refs.js
generated
vendored
1
node_modules/zod-to-json-schema/dist/cjs/Refs.js
generated
vendored
@@ -9,6 +9,7 @@ const getRefs = (options) => {
|
||||
: _options.basePath;
|
||||
return {
|
||||
..._options,
|
||||
flags: { hasReferencedOpenAiAnyType: false },
|
||||
currentPath: currentPath,
|
||||
propertyPath: undefined,
|
||||
seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [
|
||||
|
12
node_modules/zod-to-json-schema/dist/cjs/getRelativePath.js
generated
vendored
Normal file
12
node_modules/zod-to-json-schema/dist/cjs/getRelativePath.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getRelativePath = void 0;
|
||||
const getRelativePath = (pathA, pathB) => {
|
||||
let i = 0;
|
||||
for (; i < pathA.length && i < pathB.length; i++) {
|
||||
if (pathA[i] !== pathB[i])
|
||||
break;
|
||||
}
|
||||
return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
|
||||
};
|
||||
exports.getRelativePath = getRelativePath;
|
1
node_modules/zod-to-json-schema/dist/cjs/index.js
generated
vendored
1
node_modules/zod-to-json-schema/dist/cjs/index.js
generated
vendored
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||
__exportStar(require("./Options.js"), exports);
|
||||
__exportStar(require("./Refs.js"), exports);
|
||||
__exportStar(require("./errorMessages.js"), exports);
|
||||
__exportStar(require("./getRelativePath.js"), exports);
|
||||
__exportStar(require("./parseDef.js"), exports);
|
||||
__exportStar(require("./parseTypes.js"), exports);
|
||||
__exportStar(require("./parsers/any.js"), exports);
|
||||
|
16
node_modules/zod-to-json-schema/dist/cjs/parseDef.js
generated
vendored
16
node_modules/zod-to-json-schema/dist/cjs/parseDef.js
generated
vendored
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseDef = void 0;
|
||||
const Options_js_1 = require("./Options.js");
|
||||
const selectParser_js_1 = require("./selectParser.js");
|
||||
const getRelativePath_js_1 = require("./getRelativePath.js");
|
||||
const any_js_1 = require("./parsers/any.js");
|
||||
function parseDef(def, refs, forceResolution = false) {
|
||||
const seenItem = refs.seen.get(def);
|
||||
if (refs.override) {
|
||||
@@ -41,26 +43,18 @@ const get$ref = (item, refs) => {
|
||||
case "root":
|
||||
return { $ref: item.path.join("/") };
|
||||
case "relative":
|
||||
return { $ref: getRelativePath(refs.currentPath, item.path) };
|
||||
return { $ref: (0, getRelativePath_js_1.getRelativePath)(refs.currentPath, item.path) };
|
||||
case "none":
|
||||
case "seen": {
|
||||
if (item.path.length < refs.currentPath.length &&
|
||||
item.path.every((value, index) => refs.currentPath[index] === value)) {
|
||||
console.warn(`Recursive reference detected at ${refs.currentPath.join("/")}! Defaulting to any`);
|
||||
return {};
|
||||
return (0, any_js_1.parseAnyDef)(refs);
|
||||
}
|
||||
return refs.$refStrategy === "seen" ? {} : undefined;
|
||||
return refs.$refStrategy === "seen" ? (0, any_js_1.parseAnyDef)(refs) : undefined;
|
||||
}
|
||||
}
|
||||
};
|
||||
const getRelativePath = (pathA, pathB) => {
|
||||
let i = 0;
|
||||
for (; i < pathA.length && i < pathB.length; i++) {
|
||||
if (pathA[i] !== pathB[i])
|
||||
break;
|
||||
}
|
||||
return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
|
||||
};
|
||||
const addMeta = (def, refs, jsonSchema) => {
|
||||
if (def.description) {
|
||||
jsonSchema.description = def.description;
|
||||
|
18
node_modules/zod-to-json-schema/dist/cjs/parsers/any.js
generated
vendored
18
node_modules/zod-to-json-schema/dist/cjs/parsers/any.js
generated
vendored
@@ -1,7 +1,21 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseAnyDef = void 0;
|
||||
function parseAnyDef() {
|
||||
return {};
|
||||
const getRelativePath_js_1 = require("../getRelativePath.js");
|
||||
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"
|
||||
? (0, getRelativePath_js_1.getRelativePath)(anyDefinitionPath, refs.currentPath)
|
||||
: anyDefinitionPath.join("/"),
|
||||
};
|
||||
}
|
||||
exports.parseAnyDef = parseAnyDef;
|
||||
|
3
node_modules/zod-to-json-schema/dist/cjs/parsers/effects.js
generated
vendored
3
node_modules/zod-to-json-schema/dist/cjs/parsers/effects.js
generated
vendored
@@ -2,9 +2,10 @@
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseEffectsDef = void 0;
|
||||
const parseDef_js_1 = require("../parseDef.js");
|
||||
const any_js_1 = require("./any.js");
|
||||
function parseEffectsDef(_def, refs) {
|
||||
return refs.effectStrategy === "input"
|
||||
? (0, parseDef_js_1.parseDef)(_def.schema._def, refs)
|
||||
: {};
|
||||
: (0, any_js_1.parseAnyDef)(refs);
|
||||
}
|
||||
exports.parseEffectsDef = parseEffectsDef;
|
||||
|
5
node_modules/zod-to-json-schema/dist/cjs/parsers/map.js
generated
vendored
5
node_modules/zod-to-json-schema/dist/cjs/parsers/map.js
generated
vendored
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseMapDef = void 0;
|
||||
const parseDef_js_1 = require("../parseDef.js");
|
||||
const record_js_1 = require("./record.js");
|
||||
const any_js_1 = require("./any.js");
|
||||
function parseMapDef(def, refs) {
|
||||
if (refs.mapStrategy === "record") {
|
||||
return (0, record_js_1.parseRecordDef)(def, refs);
|
||||
@@ -10,11 +11,11 @@ function parseMapDef(def, refs) {
|
||||
const keys = (0, parseDef_js_1.parseDef)(def.keyType._def, {
|
||||
...refs,
|
||||
currentPath: [...refs.currentPath, "items", "items", "0"],
|
||||
}) || {};
|
||||
}) || (0, any_js_1.parseAnyDef)(refs);
|
||||
const values = (0, parseDef_js_1.parseDef)(def.valueType._def, {
|
||||
...refs,
|
||||
currentPath: [...refs.currentPath, "items", "items", "1"],
|
||||
}) || {};
|
||||
}) || (0, any_js_1.parseAnyDef)(refs);
|
||||
return {
|
||||
type: "array",
|
||||
maxItems: 125,
|
||||
|
14
node_modules/zod-to-json-schema/dist/cjs/parsers/never.js
generated
vendored
14
node_modules/zod-to-json-schema/dist/cjs/parsers/never.js
generated
vendored
@@ -1,9 +1,15 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseNeverDef = void 0;
|
||||
function parseNeverDef() {
|
||||
return {
|
||||
not: {},
|
||||
};
|
||||
const any_js_1 = require("./any.js");
|
||||
function parseNeverDef(refs) {
|
||||
return refs.target === "openAi"
|
||||
? undefined
|
||||
: {
|
||||
not: (0, any_js_1.parseAnyDef)({
|
||||
...refs,
|
||||
currentPath: [...refs.currentPath, "not"],
|
||||
}),
|
||||
};
|
||||
}
|
||||
exports.parseNeverDef = parseNeverDef;
|
||||
|
3
node_modules/zod-to-json-schema/dist/cjs/parsers/object.js
generated
vendored
3
node_modules/zod-to-json-schema/dist/cjs/parsers/object.js
generated
vendored
@@ -1,7 +1,6 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseObjectDef = void 0;
|
||||
const zod_1 = require("zod");
|
||||
const parseDef_js_1 = require("../parseDef.js");
|
||||
function parseObjectDef(def, refs) {
|
||||
const forceOptionalIntoNullable = refs.target === "openAi";
|
||||
@@ -18,7 +17,7 @@ function parseObjectDef(def, refs) {
|
||||
}
|
||||
let propOptional = safeIsOptional(propDef);
|
||||
if (propOptional && forceOptionalIntoNullable) {
|
||||
if (propDef instanceof zod_1.ZodOptional) {
|
||||
if (propDef._def.typeName === "ZodOptional") {
|
||||
propDef = propDef._def.innerType;
|
||||
}
|
||||
if (!propDef.isNullable()) {
|
||||
|
5
node_modules/zod-to-json-schema/dist/cjs/parsers/optional.js
generated
vendored
5
node_modules/zod-to-json-schema/dist/cjs/parsers/optional.js
generated
vendored
@@ -2,6 +2,7 @@
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseOptionalDef = void 0;
|
||||
const parseDef_js_1 = require("../parseDef.js");
|
||||
const any_js_1 = require("./any.js");
|
||||
const parseOptionalDef = (def, refs) => {
|
||||
if (refs.currentPath.toString() === refs.propertyPath?.toString()) {
|
||||
return (0, parseDef_js_1.parseDef)(def.innerType._def, refs);
|
||||
@@ -14,11 +15,11 @@ const parseOptionalDef = (def, refs) => {
|
||||
? {
|
||||
anyOf: [
|
||||
{
|
||||
not: {},
|
||||
not: (0, any_js_1.parseAnyDef)(refs),
|
||||
},
|
||||
innerSchema,
|
||||
],
|
||||
}
|
||||
: {};
|
||||
: (0, any_js_1.parseAnyDef)(refs);
|
||||
};
|
||||
exports.parseOptionalDef = parseOptionalDef;
|
||||
|
3
node_modules/zod-to-json-schema/dist/cjs/parsers/record.js
generated
vendored
3
node_modules/zod-to-json-schema/dist/cjs/parsers/record.js
generated
vendored
@@ -5,6 +5,7 @@ const zod_1 = require("zod");
|
||||
const parseDef_js_1 = require("../parseDef.js");
|
||||
const string_js_1 = require("./string.js");
|
||||
const branded_js_1 = require("./branded.js");
|
||||
const any_js_1 = require("./any.js");
|
||||
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.");
|
||||
@@ -19,7 +20,7 @@ function parseRecordDef(def, refs) {
|
||||
[key]: (0, parseDef_js_1.parseDef)(def.valueType._def, {
|
||||
...refs,
|
||||
currentPath: [...refs.currentPath, "properties", key],
|
||||
}) ?? {},
|
||||
}) ?? (0, any_js_1.parseAnyDef)(refs),
|
||||
}), {}),
|
||||
additionalProperties: refs.rejectedAdditionalProperties,
|
||||
};
|
||||
|
5
node_modules/zod-to-json-schema/dist/cjs/parsers/undefined.js
generated
vendored
5
node_modules/zod-to-json-schema/dist/cjs/parsers/undefined.js
generated
vendored
@@ -1,9 +1,10 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseUndefinedDef = void 0;
|
||||
function parseUndefinedDef() {
|
||||
const any_js_1 = require("./any.js");
|
||||
function parseUndefinedDef(refs) {
|
||||
return {
|
||||
not: {},
|
||||
not: (0, any_js_1.parseAnyDef)(refs),
|
||||
};
|
||||
}
|
||||
exports.parseUndefinedDef = parseUndefinedDef;
|
||||
|
5
node_modules/zod-to-json-schema/dist/cjs/parsers/unknown.js
generated
vendored
5
node_modules/zod-to-json-schema/dist/cjs/parsers/unknown.js
generated
vendored
@@ -1,7 +1,8 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseUnknownDef = void 0;
|
||||
function parseUnknownDef() {
|
||||
return {};
|
||||
const any_js_1 = require("./any.js");
|
||||
function parseUnknownDef(refs) {
|
||||
return (0, any_js_1.parseAnyDef)(refs);
|
||||
}
|
||||
exports.parseUnknownDef = parseUnknownDef;
|
||||
|
8
node_modules/zod-to-json-schema/dist/cjs/selectParser.js
generated
vendored
8
node_modules/zod-to-json-schema/dist/cjs/selectParser.js
generated
vendored
@@ -47,7 +47,7 @@ const selectParser = (def, typeName, refs) => {
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodDate:
|
||||
return (0, date_js_1.parseDateDef)(def, refs);
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodUndefined:
|
||||
return (0, undefined_js_1.parseUndefinedDef)();
|
||||
return (0, undefined_js_1.parseUndefinedDef)(refs);
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodNull:
|
||||
return (0, null_js_1.parseNullDef)(refs);
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodArray:
|
||||
@@ -81,13 +81,13 @@ const selectParser = (def, typeName, refs) => {
|
||||
return (0, promise_js_1.parsePromiseDef)(def, refs);
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodNaN:
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodNever:
|
||||
return (0, never_js_1.parseNeverDef)();
|
||||
return (0, never_js_1.parseNeverDef)(refs);
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodEffects:
|
||||
return (0, effects_js_1.parseEffectsDef)(def, refs);
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodAny:
|
||||
return (0, any_js_1.parseAnyDef)();
|
||||
return (0, any_js_1.parseAnyDef)(refs);
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodUnknown:
|
||||
return (0, unknown_js_1.parseUnknownDef)();
|
||||
return (0, unknown_js_1.parseUnknownDef)(refs);
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodDefault:
|
||||
return (0, default_js_1.parseDefaultDef)(def, refs);
|
||||
case zod_1.ZodFirstPartyTypeKind.ZodBranded:
|
||||
|
27
node_modules/zod-to-json-schema/dist/cjs/zodToJsonSchema.js
generated
vendored
27
node_modules/zod-to-json-schema/dist/cjs/zodToJsonSchema.js
generated
vendored
@@ -3,15 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.zodToJsonSchema = void 0;
|
||||
const parseDef_js_1 = require("./parseDef.js");
|
||||
const Refs_js_1 = require("./Refs.js");
|
||||
const any_js_1 = require("./parsers/any.js");
|
||||
const zodToJsonSchema = (schema, options) => {
|
||||
const refs = (0, Refs_js_1.getRefs)(options);
|
||||
const definitions = typeof options === "object" && options.definitions
|
||||
let definitions = typeof options === "object" && options.definitions
|
||||
? Object.entries(options.definitions).reduce((acc, [name, schema]) => ({
|
||||
...acc,
|
||||
[name]: (0, parseDef_js_1.parseDef)(schema._def, {
|
||||
...refs,
|
||||
currentPath: [...refs.basePath, refs.definitionPath, name],
|
||||
}, true) ?? {},
|
||||
}, true) ?? (0, any_js_1.parseAnyDef)(refs),
|
||||
}), {})
|
||||
: undefined;
|
||||
const name = typeof options === "string"
|
||||
@@ -24,7 +25,7 @@ const zodToJsonSchema = (schema, options) => {
|
||||
: {
|
||||
...refs,
|
||||
currentPath: [...refs.basePath, refs.definitionPath, name],
|
||||
}, false) ?? {};
|
||||
}, false) ?? (0, any_js_1.parseAnyDef)(refs);
|
||||
const title = typeof options === "object" &&
|
||||
options.name !== undefined &&
|
||||
options.nameStrategy === "title"
|
||||
@@ -33,6 +34,26 @@ const zodToJsonSchema = (schema, options) => {
|
||||
if (title !== undefined) {
|
||||
main.title = title;
|
||||
}
|
||||
if (refs.flags.hasReferencedOpenAiAnyType) {
|
||||
if (!definitions) {
|
||||
definitions = {};
|
||||
}
|
||||
if (!definitions[refs.openAiAnyTypeName]) {
|
||||
definitions[refs.openAiAnyTypeName] = {
|
||||
// Skipping "object" as no properties can be defined and additionalProperties must be "false"
|
||||
type: ["string", "number", "integer", "boolean", "array", "null"],
|
||||
items: {
|
||||
$ref: refs.$refStrategy === "relative"
|
||||
? "1"
|
||||
: [
|
||||
...refs.basePath,
|
||||
refs.definitionPath,
|
||||
refs.openAiAnyTypeName,
|
||||
].join("/"),
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
const combined = name === undefined
|
||||
? definitions
|
||||
? {
|
||||
|
1
node_modules/zod-to-json-schema/dist/esm/Options.js
generated
vendored
1
node_modules/zod-to-json-schema/dist/esm/Options.js
generated
vendored
@@ -33,6 +33,7 @@ export const defaultOptions = {
|
||||
emailStrategy: "format:email",
|
||||
base64Strategy: "contentEncoding:base64",
|
||||
nameStrategy: "ref",
|
||||
openAiAnyTypeName: "OpenAiAnyType"
|
||||
};
|
||||
export const getDefaultOptions = (options) => (typeof options === "string"
|
||||
? {
|
||||
|
1
node_modules/zod-to-json-schema/dist/esm/Refs.js
generated
vendored
1
node_modules/zod-to-json-schema/dist/esm/Refs.js
generated
vendored
@@ -6,6 +6,7 @@ export const getRefs = (options) => {
|
||||
: _options.basePath;
|
||||
return {
|
||||
..._options,
|
||||
flags: { hasReferencedOpenAiAnyType: false },
|
||||
currentPath: currentPath,
|
||||
propertyPath: undefined,
|
||||
seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [
|
||||
|
8
node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
generated
vendored
Normal file
8
node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
export const getRelativePath = (pathA, pathB) => {
|
||||
let i = 0;
|
||||
for (; i < pathA.length && i < pathB.length; i++) {
|
||||
if (pathA[i] !== pathB[i])
|
||||
break;
|
||||
}
|
||||
return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
|
||||
};
|
1
node_modules/zod-to-json-schema/dist/esm/index.js
generated
vendored
1
node_modules/zod-to-json-schema/dist/esm/index.js
generated
vendored
@@ -1,6 +1,7 @@
|
||||
export * from "./Options.js";
|
||||
export * from "./Refs.js";
|
||||
export * from "./errorMessages.js";
|
||||
export * from "./getRelativePath.js";
|
||||
export * from "./parseDef.js";
|
||||
export * from "./parseTypes.js";
|
||||
export * from "./parsers/any.js";
|
||||
|
14
node_modules/zod-to-json-schema/dist/esm/parseDef.js
generated
vendored
14
node_modules/zod-to-json-schema/dist/esm/parseDef.js
generated
vendored
@@ -1,5 +1,7 @@
|
||||
import { ignoreOverride } from "./Options.js";
|
||||
import { selectParser } from "./selectParser.js";
|
||||
import { getRelativePath } from "./getRelativePath.js";
|
||||
import { parseAnyDef } from "./parsers/any.js";
|
||||
export function parseDef(def, refs, forceResolution = false) {
|
||||
const seenItem = refs.seen.get(def);
|
||||
if (refs.override) {
|
||||
@@ -43,20 +45,12 @@ const get$ref = (item, refs) => {
|
||||
if (item.path.length < refs.currentPath.length &&
|
||||
item.path.every((value, index) => refs.currentPath[index] === value)) {
|
||||
console.warn(`Recursive reference detected at ${refs.currentPath.join("/")}! Defaulting to any`);
|
||||
return {};
|
||||
return parseAnyDef(refs);
|
||||
}
|
||||
return refs.$refStrategy === "seen" ? {} : undefined;
|
||||
return refs.$refStrategy === "seen" ? parseAnyDef(refs) : undefined;
|
||||
}
|
||||
}
|
||||
};
|
||||
const getRelativePath = (pathA, pathB) => {
|
||||
let i = 0;
|
||||
for (; i < pathA.length && i < pathB.length; i++) {
|
||||
if (pathA[i] !== pathB[i])
|
||||
break;
|
||||
}
|
||||
return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
|
||||
};
|
||||
const addMeta = (def, refs, jsonSchema) => {
|
||||
if (def.description) {
|
||||
jsonSchema.description = def.description;
|
||||
|
18
node_modules/zod-to-json-schema/dist/esm/parsers/any.js
generated
vendored
18
node_modules/zod-to-json-schema/dist/esm/parsers/any.js
generated
vendored
@@ -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("/"),
|
||||
};
|
||||
}
|
||||
|
3
node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
generated
vendored
3
node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
generated
vendored
@@ -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);
|
||||
}
|
||||
|
5
node_modules/zod-to-json-schema/dist/esm/parsers/map.js
generated
vendored
5
node_modules/zod-to-json-schema/dist/esm/parsers/map.js
generated
vendored
@@ -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,
|
||||
|
14
node_modules/zod-to-json-schema/dist/esm/parsers/never.js
generated
vendored
14
node_modules/zod-to-json-schema/dist/esm/parsers/never.js
generated
vendored
@@ -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"],
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
3
node_modules/zod-to-json-schema/dist/esm/parsers/object.js
generated
vendored
3
node_modules/zod-to-json-schema/dist/esm/parsers/object.js
generated
vendored
@@ -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()) {
|
||||
|
5
node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
generated
vendored
5
node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
generated
vendored
@@ -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);
|
||||
};
|
||||
|
3
node_modules/zod-to-json-schema/dist/esm/parsers/record.js
generated
vendored
3
node_modules/zod-to-json-schema/dist/esm/parsers/record.js
generated
vendored
@@ -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,
|
||||
};
|
||||
|
5
node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
generated
vendored
5
node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
generated
vendored
@@ -1,5 +1,6 @@
|
||||
export function parseUndefinedDef() {
|
||||
import { parseAnyDef } from "./any.js";
|
||||
export function parseUndefinedDef(refs) {
|
||||
return {
|
||||
not: {},
|
||||
not: parseAnyDef(refs),
|
||||
};
|
||||
}
|
||||
|
5
node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
generated
vendored
5
node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
generated
vendored
@@ -1,3 +1,4 @@
|
||||
export function parseUnknownDef() {
|
||||
return {};
|
||||
import { parseAnyDef } from "./any.js";
|
||||
export function parseUnknownDef(refs) {
|
||||
return parseAnyDef(refs);
|
||||
}
|
||||
|
8
node_modules/zod-to-json-schema/dist/esm/selectParser.js
generated
vendored
8
node_modules/zod-to-json-schema/dist/esm/selectParser.js
generated
vendored
@@ -44,7 +44,7 @@ export const selectParser = (def, typeName, refs) => {
|
||||
case ZodFirstPartyTypeKind.ZodDate:
|
||||
return parseDateDef(def, refs);
|
||||
case ZodFirstPartyTypeKind.ZodUndefined:
|
||||
return parseUndefinedDef();
|
||||
return parseUndefinedDef(refs);
|
||||
case ZodFirstPartyTypeKind.ZodNull:
|
||||
return parseNullDef(refs);
|
||||
case ZodFirstPartyTypeKind.ZodArray:
|
||||
@@ -78,13 +78,13 @@ export const selectParser = (def, typeName, refs) => {
|
||||
return parsePromiseDef(def, refs);
|
||||
case ZodFirstPartyTypeKind.ZodNaN:
|
||||
case ZodFirstPartyTypeKind.ZodNever:
|
||||
return parseNeverDef();
|
||||
return parseNeverDef(refs);
|
||||
case ZodFirstPartyTypeKind.ZodEffects:
|
||||
return parseEffectsDef(def, refs);
|
||||
case ZodFirstPartyTypeKind.ZodAny:
|
||||
return parseAnyDef();
|
||||
return parseAnyDef(refs);
|
||||
case ZodFirstPartyTypeKind.ZodUnknown:
|
||||
return parseUnknownDef();
|
||||
return parseUnknownDef(refs);
|
||||
case ZodFirstPartyTypeKind.ZodDefault:
|
||||
return parseDefaultDef(def, refs);
|
||||
case ZodFirstPartyTypeKind.ZodBranded:
|
||||
|
27
node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
generated
vendored
27
node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
generated
vendored
@@ -1,14 +1,15 @@
|
||||
import { parseDef } from "./parseDef.js";
|
||||
import { getRefs } from "./Refs.js";
|
||||
import { parseAnyDef } from "./parsers/any.js";
|
||||
const zodToJsonSchema = (schema, options) => {
|
||||
const refs = getRefs(options);
|
||||
const definitions = typeof options === "object" && options.definitions
|
||||
let definitions = typeof options === "object" && options.definitions
|
||||
? Object.entries(options.definitions).reduce((acc, [name, schema]) => ({
|
||||
...acc,
|
||||
[name]: parseDef(schema._def, {
|
||||
...refs,
|
||||
currentPath: [...refs.basePath, refs.definitionPath, name],
|
||||
}, true) ?? {},
|
||||
}, true) ?? parseAnyDef(refs),
|
||||
}), {})
|
||||
: undefined;
|
||||
const name = typeof options === "string"
|
||||
@@ -21,7 +22,7 @@ const zodToJsonSchema = (schema, options) => {
|
||||
: {
|
||||
...refs,
|
||||
currentPath: [...refs.basePath, refs.definitionPath, name],
|
||||
}, false) ?? {};
|
||||
}, false) ?? parseAnyDef(refs);
|
||||
const title = typeof options === "object" &&
|
||||
options.name !== undefined &&
|
||||
options.nameStrategy === "title"
|
||||
@@ -30,6 +31,26 @@ const zodToJsonSchema = (schema, options) => {
|
||||
if (title !== undefined) {
|
||||
main.title = title;
|
||||
}
|
||||
if (refs.flags.hasReferencedOpenAiAnyType) {
|
||||
if (!definitions) {
|
||||
definitions = {};
|
||||
}
|
||||
if (!definitions[refs.openAiAnyTypeName]) {
|
||||
definitions[refs.openAiAnyTypeName] = {
|
||||
// Skipping "object" as no properties can be defined and additionalProperties must be "false"
|
||||
type: ["string", "number", "integer", "boolean", "array", "null"],
|
||||
items: {
|
||||
$ref: refs.$refStrategy === "relative"
|
||||
? "1"
|
||||
: [
|
||||
...refs.basePath,
|
||||
refs.definitionPath,
|
||||
refs.openAiAnyTypeName,
|
||||
].join("/"),
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
const combined = name === undefined
|
||||
? definitions
|
||||
? {
|
||||
|
1
node_modules/zod-to-json-schema/dist/types/Options.d.ts
generated
vendored
1
node_modules/zod-to-json-schema/dist/types/Options.d.ts
generated
vendored
@@ -31,6 +31,7 @@ export type Options<Target extends Targets = "jsonSchema7"> = {
|
||||
nameStrategy: "ref" | "title";
|
||||
override?: OverrideCallback;
|
||||
postProcess?: PostProcessCallback;
|
||||
openAiAnyTypeName: string;
|
||||
};
|
||||
export declare const defaultOptions: Options;
|
||||
export declare const getDefaultOptions: <Target extends Targets>(options: string | Partial<Options<Target>> | undefined) => Options<Target>;
|
||||
|
3
node_modules/zod-to-json-schema/dist/types/Refs.d.ts
generated
vendored
3
node_modules/zod-to-json-schema/dist/types/Refs.d.ts
generated
vendored
@@ -5,6 +5,9 @@ export type Refs = {
|
||||
seen: Map<ZodTypeDef, Seen>;
|
||||
currentPath: string[];
|
||||
propertyPath: string[] | undefined;
|
||||
flags: {
|
||||
hasReferencedOpenAiAnyType: boolean;
|
||||
};
|
||||
} & Options<Targets>;
|
||||
export type Seen = {
|
||||
def: ZodTypeDef;
|
||||
|
6
node_modules/zod-to-json-schema/dist/types/errorMessages.d.ts
generated
vendored
6
node_modules/zod-to-json-schema/dist/types/errorMessages.d.ts
generated
vendored
@@ -1,6 +1,10 @@
|
||||
import { JsonSchema7TypeUnion } from "./parseTypes.js";
|
||||
import { Refs } from "./Refs.js";
|
||||
export type ErrorMessages<T extends JsonSchema7TypeUnion, OmitProperties extends string = ""> = Partial<Omit<{
|
||||
export type ErrorMessages<T extends JsonSchema7TypeUnion | {
|
||||
format: string;
|
||||
} | {
|
||||
pattern: string;
|
||||
}, OmitProperties extends string = ""> = Partial<Omit<{
|
||||
[key in keyof T]: string;
|
||||
}, OmitProperties | "type" | "errorMessages">>;
|
||||
export declare function addErrorMessage<T extends {
|
||||
|
1
node_modules/zod-to-json-schema/dist/types/getRelativePath.d.ts
generated
vendored
Normal file
1
node_modules/zod-to-json-schema/dist/types/getRelativePath.d.ts
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export declare const getRelativePath: (pathA: string[], pathB: string[]) => string;
|
1
node_modules/zod-to-json-schema/dist/types/index.d.ts
generated
vendored
1
node_modules/zod-to-json-schema/dist/types/index.d.ts
generated
vendored
@@ -1,6 +1,7 @@
|
||||
export * from "./Options.js";
|
||||
export * from "./Refs.js";
|
||||
export * from "./errorMessages.js";
|
||||
export * from "./getRelativePath.js";
|
||||
export * from "./parseDef.js";
|
||||
export * from "./parseTypes.js";
|
||||
export * from "./parsers/any.js";
|
||||
|
7
node_modules/zod-to-json-schema/dist/types/parsers/any.d.ts
generated
vendored
7
node_modules/zod-to-json-schema/dist/types/parsers/any.d.ts
generated
vendored
@@ -1,2 +1,5 @@
|
||||
export type JsonSchema7AnyType = {};
|
||||
export declare function parseAnyDef(): JsonSchema7AnyType;
|
||||
import { Refs } from "../Refs.js";
|
||||
export type JsonSchema7AnyType = {
|
||||
$ref?: string;
|
||||
};
|
||||
export declare function parseAnyDef(refs: Refs): JsonSchema7AnyType;
|
||||
|
6
node_modules/zod-to-json-schema/dist/types/parsers/never.d.ts
generated
vendored
6
node_modules/zod-to-json-schema/dist/types/parsers/never.d.ts
generated
vendored
@@ -1,4 +1,6 @@
|
||||
import { Refs } from "../Refs.js";
|
||||
import { JsonSchema7AnyType } from "./any.js";
|
||||
export type JsonSchema7NeverType = {
|
||||
not: {};
|
||||
not: JsonSchema7AnyType;
|
||||
};
|
||||
export declare function parseNeverDef(): JsonSchema7NeverType;
|
||||
export declare function parseNeverDef(refs: Refs): JsonSchema7NeverType | undefined;
|
||||
|
6
node_modules/zod-to-json-schema/dist/types/parsers/undefined.d.ts
generated
vendored
6
node_modules/zod-to-json-schema/dist/types/parsers/undefined.d.ts
generated
vendored
@@ -1,4 +1,6 @@
|
||||
import { Refs } from "../Refs.js";
|
||||
import { JsonSchema7AnyType } from "./any.js";
|
||||
export type JsonSchema7UndefinedType = {
|
||||
not: {};
|
||||
not: JsonSchema7AnyType;
|
||||
};
|
||||
export declare function parseUndefinedDef(): JsonSchema7UndefinedType;
|
||||
export declare function parseUndefinedDef(refs: Refs): JsonSchema7UndefinedType;
|
||||
|
6
node_modules/zod-to-json-schema/dist/types/parsers/unknown.d.ts
generated
vendored
6
node_modules/zod-to-json-schema/dist/types/parsers/unknown.d.ts
generated
vendored
@@ -1,2 +1,4 @@
|
||||
export type JsonSchema7UnknownType = {};
|
||||
export declare function parseUnknownDef(): JsonSchema7UnknownType;
|
||||
import { Refs } from "../Refs";
|
||||
import { JsonSchema7AnyType } from "./any.js";
|
||||
export type JsonSchema7UnknownType = JsonSchema7AnyType;
|
||||
export declare function parseUnknownDef(refs: Refs): JsonSchema7UnknownType;
|
||||
|
2
node_modules/zod-to-json-schema/package.json
generated
vendored
2
node_modules/zod-to-json-schema/package.json
generated
vendored
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "zod-to-json-schema",
|
||||
"version": "3.24.5",
|
||||
"version": "3.24.6",
|
||||
"description": "Converts Zod schemas to Json Schemas",
|
||||
"types": "./dist/types/index.d.ts",
|
||||
"main": "./dist/cjs/index.js",
|
||||
|
Reference in New Issue
Block a user