From 15e0332ac245749146c19f039361f8effb46e461 Mon Sep 17 00:00:00 2001 From: FoxxMD Date: Tue, 11 Aug 2026 20:37:24 +0000 Subject: [PATCH] feat: Update json schema to draft-2020-12 --- docsite/src/components/PlaygroundInner.tsx | 8 +++++--- docsite/src/components/Schema/SchemaEditor.tsx | 8 +++++--- src/backend/utils/SchemaDocsStaticUtils.ts | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/docsite/src/components/PlaygroundInner.tsx b/docsite/src/components/PlaygroundInner.tsx index db623fcb..278090c0 100644 --- a/docsite/src/components/PlaygroundInner.tsx +++ b/docsite/src/components/PlaygroundInner.tsx @@ -11,6 +11,7 @@ import "./json-schema-viewer-styles.css"; import "./modern-json-react-styles.css"; import { Mode, ReactJsonEditor, createAjvValidator, type Content } from 'modern-react-json-editor'; import f from "ajv-formats" +import Ajv2020 from 'ajv/dist/2020'; import DetailsAdmo from "./AdmonitionDetails"; const validator = createAjvValidator({ @@ -21,9 +22,10 @@ const validator = createAjvValidator({ allowUnionTypes: true, }, onCreateAjv: (ajv) => { - ajv.addKeyword('deprecationMessage'); - f.default(ajv); - return ajv; + const a = new Ajv2020(); + a.addKeyword('deprecationMessage'); + f.default(a); + return a; } }); diff --git a/docsite/src/components/Schema/SchemaEditor.tsx b/docsite/src/components/Schema/SchemaEditor.tsx index a2b688bc..527affc5 100644 --- a/docsite/src/components/Schema/SchemaEditor.tsx +++ b/docsite/src/components/Schema/SchemaEditor.tsx @@ -5,6 +5,7 @@ import { useColorMode } from '@docusaurus/theme-common'; const STRINGIFY_JSON = (json: unknown) => JSON.stringify(json, null, "\t"); import "../modern-json-react-styles.css"; import { JSONSchema, Mode, ReactJsonEditor, createAjvValidator, type Content, type Validator } from 'modern-react-json-editor'; +import Ajv2020 from 'ajv/dist/2020'; import f from "ajv-formats" import json5 from 'json5'; @@ -29,9 +30,10 @@ function SchemaEditorInner(props: SchemaEditorProps): JSX.Element { allowUnionTypes: true, }, onCreateAjv: (ajv) => { - ajv.addKeyword('deprecationMessage'); - f.default(ajv); - return ajv; + const a = new Ajv2020(); + a.addKeyword('deprecationMessage'); + f.default(a); + return a; } }); }, [props.schema]); diff --git a/src/backend/utils/SchemaDocsStaticUtils.ts b/src/backend/utils/SchemaDocsStaticUtils.ts index 76a5d4bf..b545a886 100644 --- a/src/backend/utils/SchemaDocsStaticUtils.ts +++ b/src/backend/utils/SchemaDocsStaticUtils.ts @@ -26,7 +26,7 @@ const mdCols = (cols: TableColumn[]): string[][] => cols.map((x) => { const generateSchema = (schema: z.ZodType, reused: z.core.ToJSONSchemaParams['reused'] = 'inline') => z.toJSONSchema(schema, { io: "input", reused, - target: "draft-07", + target: "draft-2020-12", unrepresentable: "any", override: (ctx) => { if(ctx.jsonSchema.anyOf !== undefined && Array.isArray(ctx.jsonSchema.anyOf)) { -- 2.51.2