11import path from "node:path" ;
22import { z } from "zod/v4" ;
3- import { jsonCollection } from "../src/json-collection.js" ;
3+ // import { jsonCollection } from "../src/json-collection.js";
44import { characterDocument } from "../src/models/doc-character.js" ;
55import { campaignRuleset } from "../src/models/ruleset-campaign.js" ;
66import { coreRuleset } from "../src/models/ruleset-core.js" ;
77
8- const characterSchema = z . toJSONSchema ( characterDocument , { reused : "ref" } ) ;
9- const registryCampaignSchema = z . toJSONSchema ( campaignRuleset , {
8+ const characterDocumentSchema = z . toJSONSchema ( characterDocument , {
109 reused : "ref" ,
1110} ) ;
12- const registryCoreSchema = z . toJSONSchema ( coreRuleset , { reused : "ref" } ) ;
11+ const campaignRulesetSchema = z . toJSONSchema ( campaignRuleset , {
12+ reused : "ref" ,
13+ } ) ;
14+ const coreRulesetSchema = z . toJSONSchema ( coreRuleset , { reused : "ref" } ) ;
1315
14- const testingSchema = z . toJSONSchema ( jsonCollection , {
16+ const defaultSchema = z . toJSONSchema ( z . globalRegistry , {
1517 target : "draft-2020-12" ,
1618 unrepresentable : "throw" ,
1719 cycles : "throw" ,
1820 reused : "ref" ,
21+ override ( ctx ) {
22+ ctx . jsonSchema . $id = ctx . jsonSchema . id ;
23+ } ,
1924} ) ;
2025
2126/**
@@ -62,10 +67,10 @@ const generateSchemas = async (): Promise<void> => {
6267
6368 // Compose schema data and filenames
6469 const schemas = [
65- { data : characterSchema , filename : "character.json" } ,
66- { data : registryCampaignSchema , filename : "campaign.json" } ,
67- { data : registryCoreSchema , filename : "core.json" } ,
68- { data : testingSchema , filename : "schema.json" } ,
70+ { data : characterDocumentSchema , filename : "document- character.json" } ,
71+ { data : campaignRulesetSchema , filename : "ruleset- campaign.json" } ,
72+ { data : coreRulesetSchema , filename : "ruleset- core.json" } ,
73+ { data : defaultSchema , filename : "schema.json" } ,
6974 ] ;
7075
7176 // Dynamically import fs/promises for ESM compatibility
@@ -75,7 +80,7 @@ const generateSchemas = async (): Promise<void> => {
7580 await Promise . all (
7681 schemas . map ( async ( { data, filename } ) => {
7782 const dest = path . join ( directory , filename ) ;
78- return writeFile ( dest , JSON . stringify ( data , null , 3 ) , "utf-8" ) ;
83+ return writeFile ( dest , JSON . stringify ( data ) , "utf-8" ) ;
7984 } ) ,
8085 ) ;
8186} ;
0 commit comments