Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@devup-api/generator

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@devup-api/generator - npm Package Compare versions

Comparing version
0.1.22
to
0.1.23
+29
-29
dist/index.cjs

@@ -1,4 +0,4 @@

var{defineProperty:XH,getOwnPropertyNames:kH,getOwnPropertyDescriptor:DH}=Object,PH=Object.prototype.hasOwnProperty;function BH(H){return this[H]}var EH=(H)=>{var Q=(QH??=new WeakMap).get(H),J;if(Q)return Q;if(Q=XH({},"__esModule",{value:!0}),H&&typeof H==="object"||typeof H==="function"){for(var X of kH(H))if(!PH.call(Q,X))XH(Q,X,{get:BH.bind(H,X),enumerable:!(J=DH(H,X))||J.enumerable})}return QH.set(H,Q),Q},QH;var wH=(H)=>H;function xH(H,Q){this[H]=wH.bind(null,Q)}var RH=(H,Q)=>{for(var J in Q)XH(H,J,{get:Q[J],enumerable:!0,configurable:!0,set:xH.bind(Q,J)})};var tH={};RH(tH,{resolveRef:()=>g,parseDevupTag:()=>WH,parseDevupOperations:()=>UH,parseCrudConfigsFromMultiple:()=>s,parseCrudConfigs:()=>_H,normalizeServerName:()=>m,isNullableSchema:()=>o,isErrorStatusCode:()=>r,getRequestBodyContent:()=>i,getPrimaryType:()=>n,generateZodTypeDeclarations:()=>nH,generateZodSchemas:()=>oH,generateInterface:()=>mH,generateCrudConfigTypes:()=>uH,generateCrudConfigCode:()=>vH,extractSchemaNameFromRef:()=>T,extractPathParams:()=>LH,createUrlMap:()=>qH,collectSchemaNames:()=>j,buildCrudConfigs:()=>YH,CONTENT_TYPE_PRIORITY:()=>t});module.exports=EH(tH);var c=require("@devup-api/utils");function v(H,Q="camel"){switch(Q){case"snake":return c.toSnake(H);case"camel":return c.toCamel(H);case"pascal":return c.toPascal(H);case"maintain":return H;default:return H}}var t=["application/json","application/x-www-form-urlencoded","multipart/form-data"];function g(H,Q){if(!H.startsWith("#/"))return null;let J=H.slice(2).split("/"),X=Q;for(let W of J)if(X&&typeof X==="object"&&W in X)X=X[W];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function i(H){if(!H)return;for(let Q of t)if(H[Q])return H[Q];return}function T(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function m(H){return H.replace(/^\.\//,"")}function r(H){if(H==="default")return!0;let Q=parseInt(H,10);return Q>=400&&Q<600}function o(H){if("nullable"in H&&H.nullable===!0)return!0;if(Array.isArray(H.type)&&H.type.includes("null"))return!0;return!1}function n(H){if(Array.isArray(H.type))return H.type.find((Q)=>Q!=="null");return H.type}function j(H,Q,J){if("$ref"in H){let W=T(H.$ref);if(W){if(Q.add(W),J?.followComponentRefs&&J.document){let $=J.visited??new Set;if($.has(W))return;$.add(W);let Y=J.document.components?.schemas?.[W];if(Y)j(Y,Q,{...J,visited:$})}}return}let X=H;if(X.allOf)for(let W of X.allOf)j(W,Q,J);if(X.anyOf)for(let W of X.anyOf)j(W,Q,J);if(X.oneOf)for(let W of X.oneOf)j(W,Q,J);if(X.properties)for(let W of Object.values(X.properties))j(W,Q,J);if(X.type==="array"&&"items"in X&&X.items)j(X.items,Q,J)}function IH(H,Q){let J=H.requestBody;if(!J)return;let X;if("$ref"in J)X=g(J.$ref,Q)?.content;else X=J.content;if(!X)return;if(X["application/x-www-form-urlencoded"])return"form";if(X["multipart/form-data"])return"multipart";return}function qH(H,Q){let J=Q?.convertCase??"camel",X={};for(let[W,$]of Object.entries(H)){let Y={};for(let[L,U]of Object.entries($.paths??{})){if(!U)continue;for(let _ of["get","post","put","delete","patch"]){let G=U[_];if(!G)continue;let K=L.replace(/\{([^}]+)\}/g,(Z,z)=>{return`{${v(z,J)}}`}),A=IH(G,$),F=_.toUpperCase(),V={url:K,...A&&{bodyType:A}};if(G.operationId){let Z=v(G.operationId,J);Y[Z]={...Y[Z],[F]:V}}Y[K]={...Y[K],[F]:V}}}X[W]=Y}return X}var a=require("@devup-api/utils");var gH=/^devup:([a-zA-Z][a-zA-Z0-9_-]*):(\w+)$/,jH=["one","create","edit","fix"];function WH(H){let Q=H.match(gH);if(!Q)return null;let[,J,X]=Q,W=X;if(!jH.includes(W))return null;return{raw:H,name:J,mode:W}}function LH(H){let Q=[],J=/\{([^}]+)\}/g,X=J.exec(H);while(X!==null)Q.push(X[1]),X=J.exec(H);return Q}function OH(H){switch(H){case"get":return"one";case"post":return"create";case"put":return"edit";case"patch":return"fix";default:return null}}function CH(H,Q){let J;if("$ref"in H){let $=g(H.$ref,Q);if(!$)return[];J=$}else J=H;if(J.type!=="object"||!J.properties)return[];let X=new Set(J.required??[]),W=[];for(let[$,Y]of Object.entries(J.properties)){if("$ref"in Y)continue;let L=Y,U={name:$,type:L.type??"string",required:X.has($)};if(L.format)U.format=L.format;if(L.description)U.description=L.description;if(L.minimum!==void 0)U.minimum=L.minimum;if(L.maximum!==void 0)U.maximum=L.maximum;if(L.minLength!==void 0)U.minLength=L.minLength;if(L.maxLength!==void 0)U.maxLength=L.maxLength;if(L.pattern)U.pattern=L.pattern;if(L.enum)U.enum=L.enum;W.push(U)}return W}function TH(H,Q){let J=H.requestBody;if(!J)return[];let X;if("$ref"in J)return[];else X=J;let W=X.content?.["application/json"];if(!W?.schema)return[];return CH(W.schema,Q)}function UH(H){let Q=[];if(!H.paths)return Q;let J=["get","post","put","patch","delete"];for(let[X,W]of Object.entries(H.paths)){if(!W)continue;for(let $ of J){let Y=W[$];if(!Y)continue;let L=[];if(Y.tags)for(let U of Y.tags){let _=WH(U);if(_){let G=OH($);if(G&&_.mode===G)L.push(_)}}if(L.length>0)Q.push({method:$,path:X,operationId:Y.operationId,tags:L,params:LH(X),operation:Y})}}return Q}function YH(H,Q){let J={};for(let W of H)for(let $ of W.tags){if(!J[$.name])J[$.name]={name:$.name};if(!W.operationId){console.warn(`Skipping ${W.method.toUpperCase()} ${W.path} - missing operationId`);continue}let Y=["post","put","patch"].includes(W.method)?TH(W.operation,Q):void 0,L={method:W.method,operationId:W.operationId,fields:Y},U=J[$.name];switch($.mode){case"one":U.one=L;break;case"create":U.create=L;break;case"edit":U.edit=L;break;case"fix":U.fix=L;break}}let X={};for(let[W,$]of Object.entries(J))if($.one&&$.create)X[W]=$;return X}function _H(H){let Q=UH(H);return YH(Q,H)}function s(H){let Q={};for(let J of Object.values(H)){let X=_H(J);Object.assign(Q,X)}return Q}function B(H){if(H==="")return H;let Q=H.endsWith("?"),J=Q?H.slice(0,-1):H;if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(J)||J.includes("'")){let $=`'${J.includes("'")?J.replace(/'/g,"\\'"):J}'`;return Q?`${$}?`:$}return H}function AH(H){return H.replace(/([A-Z])/g," $1").replace(/[-_]/g," ").trim().split(" ").map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1).toLowerCase()).join(" ")}function SH(H){if(H.format==="email")return"email";if(H.format==="uri"||H.format==="url")return"url";if(H.format==="date")return"date";if(H.format==="date-time")return"datetime-local";if(H.format==="time")return"time";if(H.format==="password")return"password";if(H.type==="number"||H.type==="integer")return"number";return"text"}function bH(H){let Q=[];if(H.required)Q.push("required: true");if(H.minLength!==void 0)Q.push(`minLength: ${H.minLength}`);if(H.maxLength!==void 0)Q.push(`maxLength: ${H.maxLength}`);if(H.minimum!==void 0)Q.push(`min: ${H.minimum}`);if(H.maximum!==void 0)Q.push(`max: ${H.maximum}`);if(H.pattern)Q.push(`pattern: /${H.pattern}/`);if(H.type==="number"||H.type==="integer")Q.push("valueAsNumber: true");return Q.length>0?`{ ${Q.join(", ")} }`:""}function NH(H,Q){let J=[],X=SH(H),W=AH(H.name),$=bH(H),Y=$?`register('${H.name}', ${$})`:`register('${H.name}')`;if(H.enum&&H.enum.length>0){J.push(`${Q}<div>`),J.push(`${Q} <label htmlFor="${H.name}">${W}</label>`),J.push(`${Q} <select id="${H.name}" {...${Y}}>`),J.push(`${Q} <option value="">Select...</option>`);for(let L of H.enum)J.push(`${Q} <option value="${L}">${AH(L)}</option>`);return J.push(`${Q} </select>`),J.push(`${Q} {errors.${H.name} && <span>Invalid</span>}`),J.push(`${Q}</div>`),J}if(H.type==="boolean")return J.push(`${Q}<div>`),J.push(`${Q} <label>`),J.push(`${Q} <input type="checkbox" {...${Y}} />`),J.push(`${Q} ${W}`),J.push(`${Q} </label>`),J.push(`${Q} {errors.${H.name} && <span>Invalid</span>}`),J.push(`${Q}</div>`),J;if(J.push(`${Q}<div>`),J.push(`${Q} <label htmlFor="${H.name}">${W}</label>`),J.push(`${Q} <input`),J.push(`${Q} id="${H.name}"`),J.push(`${Q} type="${X}"`),J.push(`${Q} {...${Y}}`),H.description)J.push(`${Q} placeholder="${H.description}"`);return J.push(`${Q} />`),J.push(`${Q} {errors.${H.name} && <span>${H.required?"Required":"Invalid"}</span>}`),J.push(`${Q}</div>`),J}function yH(H,Q){let J=[],X=`${H}Fields`;if(J.push(`function ${X}() {`),J.push(" const { register, formState: { errors } } = useFormContext();"),J.push(""),J.push(" return ("),J.push(" <>"),Q.length>0)for(let W of Q){let $=NH(W," ");J.push(...$)}else J.push(" {/* No fields defined in OpenAPI schema */}");return J.push(""),J.push(' <button type="submit">Submit</button>'),J.push(" </>"),J.push(" );"),J.push("}"),J}function fH(H,Q){let J=[],X=`${a.toPascal(H)}Crud`,W=`${X}Fields`,$=Q.edit??Q.fix,Y=$?.method??"put",L=$?.operationId;if(J.push(`export function ${X}({`),J.push(" apiClient,"),J.push(" params,"),J.push(" onSuccess,"),J.push(" onError,"),J.push("}) {"),J.push(" const isEdit = !!params;"),J.push(""),J.push(" return ("),J.push(" <ApiForm"),J.push(" api={apiClient}"),J.push(` method={isEdit ? '${Y}' : 'post'}`),L)J.push(` path={isEdit ? '${L}' : '${Q.create.operationId}'}`);else J.push(` path={'${Q.create.operationId}'}`);return J.push(" requestOptions={isEdit ? { params } : undefined}"),J.push(" fetchDefaultValues={isEdit ? {"),J.push(` path: '${Q.one.operationId}',`),J.push(" options: { params },"),J.push(" } : undefined}"),J.push(" onSuccess={onSuccess}"),J.push(" onError={onError}"),J.push(" >"),J.push(` <${W} />`),J.push(" </ApiForm>"),J.push(" );"),J.push("}"),J}function vH(H){let Q=s(H),J=[];J.push("// Auto-generated CRUD components from OpenAPI specs"),J.push("// Do not edit this file directly"),J.push("'use client';"),J.push(""),J.push("import { ApiForm, useFormContext } from '@devup-api/hookform';"),J.push("");for(let[X,W]of Object.entries(Q)){let $=`${a.toPascal(X)}Crud`,Y=W.create.fields??[];J.push("// ============================================"),J.push(`// ${$}`),J.push("// ============================================"),J.push("");let L=yH($,Y);J.push(...L),J.push("");let U=fH(X,W);J.push(...U),J.push("")}J.push("export default {");for(let X of Object.keys(Q)){let W=`${a.toPascal(X)}Crud`;J.push(` ${X}: ${W},`)}return J.push("};"),J.join(`
`)}function uH(H){let Q=s(H),J=Object.keys(Q),X=[];if(X.push("import '@devup-api/ui'"),X.push(""),J.length>0){X.push("declare module '@devup-api/ui' {"),X.push(" interface DevupCrudApiNames {");for(let W of J)X.push(` ${B(W)}: true`);X.push(" }"),X.push("}"),X.push("")}return X.push("declare module '@devup-api/ui/crud' {"),X.push(" import type { CrudComponents } from '@devup-api/ui'"),X.push(""),X.push(" const crudComponents: CrudComponents"),X.push(" export default crudComponents"),X.push("}"),X.join(`
`)}var $H=require("@devup-api/utils");function l(H){return{enums:new Map,propertyPath:[],schemaName:H}}function hH(H,Q){let J=[];if(H.schemaName)J.push(H.schemaName);if(H.propertyPath.length>0)J.push(...H.propertyPath);if(J.length===0)return`${Q.slice(0,3).map(($)=>String($).charAt(0).toUpperCase()+String($).slice(1)).join("")}Enum`;return J.map((W)=>{return W.replace(/[^a-zA-Z0-9]/g," ").split(" ").filter(Boolean).map(($)=>$.charAt(0).toUpperCase()+$.slice(1)).join("")}).join("")}function O(H,Q,J){let X=J?.defaultNonNullable??!1,W=J?.context;if(W&&J?.propertyName)W.propertyPath.push(J.propertyName);try{if("$ref"in H){let U=H.$ref.startsWith("#/components/schemas/")?H.$ref.replace("#/components/schemas/",""):void 0,_=g(H.$ref,Q);if(!_)return{type:"unknown",default:void 0};if(U&&J?.serverName&&J?.componentType&&J?.usedSchemaNames?.has(U)){if("enum"in _&&_.enum)return{type:U,default:void 0};return{type:{__componentRef:!0,schemaName:U,serverName:J.serverName,componentType:J.componentType},default:void 0}}let G=W&&U?{...W,schemaName:U,propertyPath:[]}:W;return O(_,Q,{...J,context:G,propertyName:void 0})}let $=H;if($.allOf){let U=$.allOf.map((_)=>O(_,Q,{...J,propertyName:void 0}));return{type:U.length>0?U.map((_)=>y(_.type)).join(" & "):"unknown",default:$.default}}if($.anyOf||$.oneOf){let U=($.anyOf||$.oneOf||[]).map((_)=>O(_,Q,{...J,propertyName:void 0}));return{type:U.length>0?`(${U.map((_)=>y(_.type)).join(" | ")})`:"unknown",default:$.default}}let Y=o($);if($.enum){if(W){let _=hH(W,$.enum);if(!W.enums.get(_))W.enums.set(_,{name:_,values:$.enum,nullable:Y});return{type:Y?`${_} | null`:_,default:$.default}}let U=$.enum.map((_)=>`"${String(_)}"`).join(" | ");return{type:Y?`${U} | null`:U,default:$.default}}let L=n($);if(L==="string"){if($.format==="binary")return{type:Y?"File | Blob | null":"File | Blob",default:$.default};return{type:Y?"string | null":"string",default:$.default}}if(L==="number"||L==="integer")return{type:Y?"number | null":"number",default:$.default};if(L==="boolean")return{type:Y?"boolean | null":"boolean",default:$.default};if(L==="array"){let U="items"in $?$.items:void 0;if(U){let _=O(U,Q,{...J,propertyName:void 0});return{type:Y?{__isArray:!0,items:_.type,__nullable:!0}:{__isArray:!0,items:_.type},default:$.default}}return{type:Y?"unknown[] | null":"unknown[]",default:$.default}}if(L==="object"||$.properties){let U={},_=$.required||[];if($.properties)for(let[G,K]of Object.entries($.properties)){let A=O(K,Q,{...J,propertyName:G}),F=!1;if("$ref"in K){let Z=g(K.$ref,Q);if(Z)F=Z.default!==void 0}else F=K.default!==void 0;let V=_.includes(G);if(X&&F&&!V)U[G]=A;else if(!V)U[`${G}?`]=A;else U[G]=A}if($.additionalProperties){if($.additionalProperties===!0)U["[key: string]"]={type:"unknown",default:void 0};else if(typeof $.additionalProperties==="object"){let G=O($.additionalProperties,Q,{...J,propertyName:void 0});U["[key: string]"]={type:G.type,default:G.default}}}return{type:Y?{...U,__nullable:!0}:{...U},default:$.default}}return{type:"unknown",default:void 0}}finally{if(W&&J?.propertyName)W.propertyPath.pop()}}function MH(H){return typeof H==="object"&&H!==null&&"type"in H&&"in"in H&&"name"in H}function VH(H){let Q=Object.entries(H);if(Q.length===0)return!0;return Q.every(([J,X])=>{if(J.endsWith("?"))return!0;if(MH(X))return X.required===!1;if(JH(X))return!1;if(typeof X==="object"&&X!==null&&!Array.isArray(X))return VH(X);return!1})}function ZH(H,Q=0){let J=" ".repeat(Q),X=Q+1,W=" ".repeat(X),$=Object.entries(H).map(([Y,L])=>{if(typeof L==="string")return`${W}${B(Y)}: ${L}`;if(MH(L)){let K=y(L.type,X),A=L.required===!1,F=B(Y),V=A?`${F}?`:F,Z="";if(L.description){if(Z+=`${W}/**
var{defineProperty:XH,getOwnPropertyNames:DH,getOwnPropertyDescriptor:PH}=Object,BH=Object.prototype.hasOwnProperty;function kH(H){return this[H]}var EH=(H)=>{var Q=(QH??=new WeakMap).get(H),J;if(Q)return Q;if(Q=XH({},"__esModule",{value:!0}),H&&typeof H==="object"||typeof H==="function"){for(var X of DH(H))if(!BH.call(Q,X))XH(Q,X,{get:kH.bind(H,X),enumerable:!(J=PH(H,X))||J.enumerable})}return QH.set(H,Q),Q},QH;var wH=(H)=>H;function xH(H,Q){this[H]=wH.bind(null,Q)}var RH=(H,Q)=>{for(var J in Q)XH(H,J,{get:Q[J],enumerable:!0,configurable:!0,set:xH.bind(Q,J)})};var tH={};RH(tH,{resolveRef:()=>g,parseDevupTag:()=>WH,parseDevupOperations:()=>UH,parseCrudConfigsFromMultiple:()=>s,parseCrudConfigs:()=>_H,normalizeServerName:()=>m,isNullableSchema:()=>o,isErrorStatusCode:()=>r,getRequestBodyContent:()=>i,getPrimaryType:()=>n,generateZodTypeDeclarations:()=>nH,generateZodSchemas:()=>oH,generateInterface:()=>mH,generateCrudConfigTypes:()=>uH,generateCrudConfigCode:()=>vH,extractSchemaNameFromRef:()=>T,extractPathParams:()=>LH,createUrlMap:()=>qH,collectSchemaNames:()=>j,buildCrudConfigs:()=>YH,CONTENT_TYPE_PRIORITY:()=>t});module.exports=EH(tH);var c=require("@devup-api/utils");function v(H,Q="camel"){switch(Q){case"snake":return c.toSnake(H);case"camel":return c.toCamel(H);case"pascal":return c.toPascal(H);case"maintain":return H;default:return H}}var t=["application/json","application/x-www-form-urlencoded","multipart/form-data"];function g(H,Q){if(!H.startsWith("#/"))return null;let J=H.slice(2).split("/"),X=Q;for(let W of J)if(X&&typeof X==="object"&&W in X)X=X[W];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function i(H){if(!H)return;for(let Q of t)if(H[Q])return H[Q];return}function T(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function m(H){return H.replace(/^\.\//,"")}function r(H){if(H==="default")return!0;let Q=parseInt(H,10);return Q>=400&&Q<600}function o(H){if("nullable"in H&&H.nullable===!0)return!0;if(Array.isArray(H.type)&&H.type.includes("null"))return!0;return!1}function n(H){if(Array.isArray(H.type))return H.type.find((Q)=>Q!=="null");return H.type}function j(H,Q,J){if("$ref"in H){let W=T(H.$ref);if(W){if(Q.add(W),J?.followComponentRefs&&J.document){let $=J.visited??new Set;if($.has(W))return;$.add(W);let Y=J.document.components?.schemas?.[W];if(Y)j(Y,Q,{...J,visited:$})}}return}let X=H;if(X.allOf)for(let W of X.allOf)j(W,Q,J);if(X.anyOf)for(let W of X.anyOf)j(W,Q,J);if(X.oneOf)for(let W of X.oneOf)j(W,Q,J);if(X.properties)for(let W of Object.values(X.properties))j(W,Q,J);if(X.type==="array"&&"items"in X&&X.items)j(X.items,Q,J)}function IH(H,Q){let J=H.requestBody;if(!J)return;let X;if("$ref"in J)X=g(J.$ref,Q)?.content;else X=J.content;if(!X)return;if(X["application/x-www-form-urlencoded"])return"form";if(X["multipart/form-data"])return"multipart";return}function qH(H,Q){let J=Q?.convertCase??"camel",X={};for(let[W,$]of Object.entries(H)){let Y={};for(let[L,U]of Object.entries($.paths??{})){if(!U)continue;for(let _ of["get","post","put","delete","patch"]){let G=U[_];if(!G)continue;let K=L.replace(/\{([^}]+)\}/g,(Z,z)=>{return`{${v(z,J)}}`}),A=IH(G,$),F=_.toUpperCase(),V={url:K,...A&&{bodyType:A}};if(G.operationId){let Z=v(G.operationId,J);Y[Z]={...Y[Z],[F]:V}}Y[K]={...Y[K],[F]:V}}}X[W]=Y}return X}var a=require("@devup-api/utils");var gH=/^devup:([a-zA-Z][a-zA-Z0-9_-]*):(\w+)$/,jH=["one","create","edit","fix"];function WH(H){let Q=H.match(gH);if(!Q)return null;let[,J,X]=Q,W=X;if(!jH.includes(W))return null;return{raw:H,name:J,mode:W}}function LH(H){let Q=[],J=/\{([^}]+)\}/g,X=J.exec(H);while(X!==null)Q.push(X[1]),X=J.exec(H);return Q}function OH(H){switch(H){case"get":return"one";case"post":return"create";case"put":return"edit";case"patch":return"fix";default:return null}}function CH(H,Q){let J;if("$ref"in H){let $=g(H.$ref,Q);if(!$)return[];J=$}else J=H;if(J.type!=="object"||!J.properties)return[];let X=new Set(J.required??[]),W=[];for(let[$,Y]of Object.entries(J.properties)){if("$ref"in Y)continue;let L=Y,U={name:$,type:L.type??"string",required:X.has($)};if(L.format)U.format=L.format;if(L.description)U.description=L.description;if(L.minimum!==void 0)U.minimum=L.minimum;if(L.maximum!==void 0)U.maximum=L.maximum;if(L.minLength!==void 0)U.minLength=L.minLength;if(L.maxLength!==void 0)U.maxLength=L.maxLength;if(L.pattern)U.pattern=L.pattern;if(L.enum)U.enum=L.enum;W.push(U)}return W}function TH(H,Q){let J=H.requestBody;if(!J)return[];let X;if("$ref"in J)return[];else X=J;let W=X.content?.["application/json"];if(!W?.schema)return[];return CH(W.schema,Q)}function UH(H){let Q=[];if(!H.paths)return Q;let J=["get","post","put","patch","delete"];for(let[X,W]of Object.entries(H.paths)){if(!W)continue;for(let $ of J){let Y=W[$];if(!Y)continue;let L=[];if(Y.tags)for(let U of Y.tags){let _=WH(U);if(_){let G=OH($);if(G&&_.mode===G)L.push(_)}}if(L.length>0)Q.push({method:$,path:X,operationId:Y.operationId,tags:L,params:LH(X),operation:Y})}}return Q}function YH(H,Q){let J={};for(let W of H)for(let $ of W.tags){if(!J[$.name])J[$.name]={name:$.name};if(!W.operationId){console.warn(`Skipping ${W.method.toUpperCase()} ${W.path} - missing operationId`);continue}let Y=["post","put","patch"].includes(W.method)?TH(W.operation,Q):void 0,L={method:W.method,operationId:W.operationId,fields:Y},U=J[$.name];switch($.mode){case"one":U.one=L;break;case"create":U.create=L;break;case"edit":U.edit=L;break;case"fix":U.fix=L;break}}let X={};for(let[W,$]of Object.entries(J))if($.one&&$.create)X[W]=$;return X}function _H(H){let Q=UH(H);return YH(Q,H)}function s(H){let Q={};for(let J of Object.values(H)){let X=_H(J);Object.assign(Q,X)}return Q}function k(H){if(H==="")return H;if(/^\[.+:\s*.+\]$/.test(H))return H;let Q=H.endsWith("?"),J=Q?H.slice(0,-1):H;if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(J)||J.includes("'")){let $=`'${J.includes("'")?J.replace(/'/g,"\\'"):J}'`;return Q?`${$}?`:$}return H}function AH(H){return H.replace(/([A-Z])/g," $1").replace(/[-_]/g," ").trim().split(" ").map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1).toLowerCase()).join(" ")}function SH(H){if(H.format==="email")return"email";if(H.format==="uri"||H.format==="url")return"url";if(H.format==="date")return"date";if(H.format==="date-time")return"datetime-local";if(H.format==="time")return"time";if(H.format==="password")return"password";if(H.type==="number"||H.type==="integer")return"number";return"text"}function bH(H){let Q=[];if(H.required)Q.push("required: true");if(H.minLength!==void 0)Q.push(`minLength: ${H.minLength}`);if(H.maxLength!==void 0)Q.push(`maxLength: ${H.maxLength}`);if(H.minimum!==void 0)Q.push(`min: ${H.minimum}`);if(H.maximum!==void 0)Q.push(`max: ${H.maximum}`);if(H.pattern)Q.push(`pattern: /${H.pattern}/`);if(H.type==="number"||H.type==="integer")Q.push("valueAsNumber: true");return Q.length>0?`{ ${Q.join(", ")} }`:""}function NH(H,Q){let J=[],X=SH(H),W=AH(H.name),$=bH(H),Y=$?`register('${H.name}', ${$})`:`register('${H.name}')`;if(H.enum&&H.enum.length>0){J.push(`${Q}<div>`),J.push(`${Q} <label htmlFor="${H.name}">${W}</label>`),J.push(`${Q} <select id="${H.name}" {...${Y}}>`),J.push(`${Q} <option value="">Select...</option>`);for(let L of H.enum)J.push(`${Q} <option value="${L}">${AH(L)}</option>`);return J.push(`${Q} </select>`),J.push(`${Q} {errors.${H.name} && <span>Invalid</span>}`),J.push(`${Q}</div>`),J}if(H.type==="boolean")return J.push(`${Q}<div>`),J.push(`${Q} <label>`),J.push(`${Q} <input type="checkbox" {...${Y}} />`),J.push(`${Q} ${W}`),J.push(`${Q} </label>`),J.push(`${Q} {errors.${H.name} && <span>Invalid</span>}`),J.push(`${Q}</div>`),J;if(J.push(`${Q}<div>`),J.push(`${Q} <label htmlFor="${H.name}">${W}</label>`),J.push(`${Q} <input`),J.push(`${Q} id="${H.name}"`),J.push(`${Q} type="${X}"`),J.push(`${Q} {...${Y}}`),H.description)J.push(`${Q} placeholder="${H.description}"`);return J.push(`${Q} />`),J.push(`${Q} {errors.${H.name} && <span>${H.required?"Required":"Invalid"}</span>}`),J.push(`${Q}</div>`),J}function fH(H,Q){let J=[],X=`${H}Fields`;if(J.push(`function ${X}() {`),J.push(" const { register, formState: { errors } } = useFormContext();"),J.push(""),J.push(" return ("),J.push(" <>"),Q.length>0)for(let W of Q){let $=NH(W," ");J.push(...$)}else J.push(" {/* No fields defined in OpenAPI schema */}");return J.push(""),J.push(' <button type="submit">Submit</button>'),J.push(" </>"),J.push(" );"),J.push("}"),J}function yH(H,Q){let J=[],X=`${a.toPascal(H)}Crud`,W=`${X}Fields`,$=Q.edit??Q.fix,Y=$?.method??"put",L=$?.operationId;if(J.push(`export function ${X}({`),J.push(" apiClient,"),J.push(" params,"),J.push(" onSuccess,"),J.push(" onError,"),J.push("}) {"),J.push(" const isEdit = !!params;"),J.push(""),J.push(" return ("),J.push(" <ApiForm"),J.push(" api={apiClient}"),J.push(` method={isEdit ? '${Y}' : 'post'}`),L)J.push(` path={isEdit ? '${L}' : '${Q.create.operationId}'}`);else J.push(` path={'${Q.create.operationId}'}`);return J.push(" requestOptions={isEdit ? { params } : undefined}"),J.push(" fetchDefaultValues={isEdit ? {"),J.push(` path: '${Q.one.operationId}',`),J.push(" options: { params },"),J.push(" } : undefined}"),J.push(" onSuccess={onSuccess}"),J.push(" onError={onError}"),J.push(" >"),J.push(` <${W} />`),J.push(" </ApiForm>"),J.push(" );"),J.push("}"),J}function vH(H){let Q=s(H),J=[];J.push("// Auto-generated CRUD components from OpenAPI specs"),J.push("// Do not edit this file directly"),J.push("'use client';"),J.push(""),J.push("import { ApiForm, useFormContext } from '@devup-api/hookform';"),J.push("");for(let[X,W]of Object.entries(Q)){let $=`${a.toPascal(X)}Crud`,Y=W.create.fields??[];J.push("// ============================================"),J.push(`// ${$}`),J.push("// ============================================"),J.push("");let L=fH($,Y);J.push(...L),J.push("");let U=yH(X,W);J.push(...U),J.push("")}J.push("export default {");for(let X of Object.keys(Q)){let W=`${a.toPascal(X)}Crud`;J.push(` ${X}: ${W},`)}return J.push("};"),J.join(`
`)}function uH(H){let Q=s(H),J=Object.keys(Q),X=[];if(X.push("import '@devup-api/ui'"),X.push(""),J.length>0){X.push("declare module '@devup-api/ui' {"),X.push(" interface DevupCrudApiNames {");for(let W of J)X.push(` ${k(W)}: true`);X.push(" }"),X.push("}"),X.push("")}return X.push("declare module '@devup-api/ui/crud' {"),X.push(" import type { CrudComponents } from '@devup-api/ui'"),X.push(""),X.push(" const crudComponents: CrudComponents"),X.push(" export default crudComponents"),X.push("}"),X.join(`
`)}var $H=require("@devup-api/utils");function l(H){return{enums:new Map,propertyPath:[],schemaName:H}}function hH(H,Q){let J=[];if(H.schemaName)J.push(H.schemaName);if(H.propertyPath.length>0)J.push(...H.propertyPath);if(J.length===0)return`${Q.slice(0,3).map(($)=>String($).charAt(0).toUpperCase()+String($).slice(1)).join("")}Enum`;return J.map((W)=>{return W.replace(/[^a-zA-Z0-9]/g," ").split(" ").filter(Boolean).map(($)=>$.charAt(0).toUpperCase()+$.slice(1)).join("")}).join("")}function O(H,Q,J){let X=J?.defaultNonNullable??!1,W=J?.context;if(W&&J?.propertyName)W.propertyPath.push(J.propertyName);try{if("$ref"in H){let U=H.$ref.startsWith("#/components/schemas/")?H.$ref.replace("#/components/schemas/",""):void 0,_=g(H.$ref,Q);if(!_)return{type:"unknown",default:void 0};if(U&&J?.serverName&&J?.componentType&&J?.usedSchemaNames?.has(U)){if("enum"in _&&_.enum)return{type:U,default:void 0};return{type:{__componentRef:!0,schemaName:U,serverName:J.serverName,componentType:J.componentType},default:void 0}}let G=W&&U?{...W,schemaName:U,propertyPath:[]}:W;return O(_,Q,{...J,context:G,propertyName:void 0})}let $=H;if($.allOf){let U=$.allOf.map((_)=>O(_,Q,{...J,propertyName:void 0}));return{type:U.length>0?U.map((_)=>f(_.type)).join(" & "):"unknown",default:$.default}}if($.anyOf||$.oneOf){let U=($.anyOf||$.oneOf||[]).map((_)=>O(_,Q,{...J,propertyName:void 0}));return{type:U.length>0?`(${U.map((_)=>f(_.type)).join(" | ")})`:"unknown",default:$.default}}let Y=o($);if($.enum){if(W){let _=hH(W,$.enum);if(!W.enums.get(_))W.enums.set(_,{name:_,values:$.enum,nullable:Y});return{type:Y?`${_} | null`:_,default:$.default}}let U=$.enum.map((_)=>`"${String(_)}"`).join(" | ");return{type:Y?`${U} | null`:U,default:$.default}}let L=n($);if(L==="string"){if($.format==="binary")return{type:Y?"File | Blob | null":"File | Blob",default:$.default};return{type:Y?"string | null":"string",default:$.default}}if(L==="number"||L==="integer")return{type:Y?"number | null":"number",default:$.default};if(L==="boolean")return{type:Y?"boolean | null":"boolean",default:$.default};if(L==="array"){let U="items"in $?$.items:void 0;if(U){let _=O(U,Q,{...J,propertyName:void 0});return{type:Y?{__isArray:!0,items:_.type,__nullable:!0}:{__isArray:!0,items:_.type},default:$.default}}return{type:Y?"unknown[] | null":"unknown[]",default:$.default}}if(L==="object"||$.properties){let U={},_=$.required||[];if($.properties)for(let[G,K]of Object.entries($.properties)){let A=O(K,Q,{...J,propertyName:G}),F=!1;if("$ref"in K){let Z=g(K.$ref,Q);if(Z)F=Z.default!==void 0}else F=K.default!==void 0;let V=_.includes(G);if(X&&F&&!V)U[G]=A;else if(!V)U[`${G}?`]=A;else U[G]=A}if($.additionalProperties){if($.additionalProperties===!0)U["[key: string]"]={type:"unknown",default:void 0};else if(typeof $.additionalProperties==="object"){let G=O($.additionalProperties,Q,{...J,propertyName:void 0});U["[key: string]"]={type:G.type,default:G.default}}}return{type:Y?{...U,__nullable:!0}:{...U},default:$.default}}return{type:"unknown",default:void 0}}finally{if(W&&J?.propertyName)W.propertyPath.pop()}}function MH(H){return typeof H==="object"&&H!==null&&"type"in H&&"in"in H&&"name"in H}function VH(H){let Q=Object.entries(H);if(Q.length===0)return!0;return Q.every(([J,X])=>{if(J.endsWith("?"))return!0;if(MH(X))return X.required===!1;if(JH(X))return!1;if(typeof X==="object"&&X!==null&&!Array.isArray(X))return VH(X);return!1})}function ZH(H,Q=0){let J=" ".repeat(Q),X=Q+1,W=" ".repeat(X),$=Object.entries(H).map(([Y,L])=>{if(typeof L==="string")return`${W}${k(Y)}: ${L}`;if(MH(L)){let K=f(L.type,X),A=L.required===!1,F=k(Y),V=A?`${F}?`:F,Z="";if(L.description){if(Z+=`${W}/**
${W} * ${L.description}`,typeof L.default<"u")Z+=`

@@ -8,22 +8,22 @@ ${W} * @default {${L.default}}`;Z=`${Z}

${W}`}else if(typeof L.default<"u")Z+=`${W}/** @default {${L.default}} */
${W}`;else Z=W;return`${Z}${V}: ${K}`}if(JH(L)){let K=y(L.type,X);return`${W}${B(Y)}: ${K}`}let _=typeof L==="object"&&L!==null&&!Array.isArray(L)&&VH(L)?"?":"",G=y(L,X);return`${W}${B(Y)}${_}: ${G}`}).join(`;
${W}`;else Z=W;return`${Z}${V}: ${K}`}if(JH(L)){let K=f(L.type,X);return`${W}${k(Y)}: ${K}`}let _=typeof L==="object"&&L!==null&&!Array.isArray(L)&&VH(L)?"?":"",G=f(L,X);return`${W}${k(Y)}${_}: ${G}`}).join(`;
`);if($.length===0)return"{}";return`{
${$};
${J}}`}function JH(H){return typeof H==="object"&&H!==null&&"type"in H&&Object.keys(H).length<=2&&(!("default"in H)||Object.keys(H).length===2)}function dH(H){return typeof H==="object"&&H!==null&&"__isArray"in H&&H.__isArray===!0}function pH(H){return typeof H==="object"&&H!==null&&"__nullable"in H&&H.__nullable===!0}function iH(H){return typeof H==="object"&&H!==null&&"__componentRef"in H&&H.__componentRef===!0}function y(H,Q=0){if(typeof H==="string")return H;if(iH(H))return`DevupObject<'${H.componentType}', '${H.serverName}'>['${H.schemaName}']`;if(dH(H)){let X=`Array<${y(H.items,Q)}>`;return H.__nullable?`${X} | null`:X}if(JH(H))return y(H.type,Q);if(pH(H)){let{__nullable:J,...X}=H;return`${ZH(X,Q)} | null`}if(typeof H==="object"&&H!==null&&!Array.isArray(H))return ZH(H,Q);return String(H)}function GH(H,Q,J){let X={},W={},$={},Y=[...H?.parameters||[],...Q?.parameters||[]];for(let L of Y){if("$ref"in L){let A=g(L.$ref,J);if(A&&"in"in A&&"name"in A&&typeof A.in==="string"&&typeof A.name==="string"){let F="schema"in A&&A.schema?A.schema:{},{type:V,default:Z}=O(F,J,{defaultNonNullable:!1}),z={...A,type:V,default:Z};if(A.in==="path")X[A.name]=z;else if(A.in==="query")W[A.name]=z;else if(A.in==="header")$[A.name]=z}continue}let U=L.schema||{},{type:_,default:G}=O(U,J,{defaultNonNullable:!1}),K={...L,type:_,default:G};if(L.in==="path")X[L.name]=K;else if(L.in==="query")W[L.name]=K;else if(L.in==="header")$[L.name]=K}return{pathParams:X,queryParams:W,headerParams:$}}function e(H,Q){if(!H)return;if("$ref"in H){let X=g(H.$ref,Q);if(X&&"content"in X&&X.content){let W=X.content,$=i(W);if($&&"schema"in $&&$.schema)return O($.schema,Q,{defaultNonNullable:!1}).type}return"unknown"}let J=H.content;if(J){let X=i(J);if(X&&"schema"in X&&X.schema)return O(X.schema,Q,{defaultNonNullable:!1}).type}return}function FH(H,Q,J,X,W,$,Y){if(!H)return;if("$ref"in H)return;if(!("content"in H))return;let U=H.content?.["application/json"];if(!U||!("schema"in U)||!U.schema)return;let _=Q==="response"?"Response":"Error",G=Y?.responseDefaultNonNullable??!0,K=(F)=>{let V=l(_),{type:Z}=O(F,X,{defaultNonNullable:G,context:V,serverName:W,componentType:Q,usedSchemaNames:J});for(let[z,M]of V.enums)if(!$.enums.has(z))$.enums.set(z,M);return Z};if("$ref"in U.schema){let F=T(U.schema.$ref);if(F&&X.components?.schemas?.[F]&&J.has(F))return`DevupObject<'${Q}', '${W}'>['${F}']`;return K(U.schema)}let A=U.schema;if(A.type==="array"&&A.items&&"$ref"in A.items){let F=T(A.items.$ref);if(F&&X.components?.schemas?.[F]&&J.has(F))return`Array<DevupObject<'${Q}', '${W}'>['${F}']>`;return K(U.schema)}return K(U.schema)}function lH(H,Q){let J;if("$ref"in H)J=g(H.$ref,Q)?.content;else J=H.content;if(!J)return!1;return J["multipart/form-data"]!==void 0||J["application/x-www-form-urlencoded"]!==void 0}function cH(H,Q,J){let X=l(),W={get:{},post:{},put:{},delete:{},patch:{}},$=J?.convertCase??"camel",Y={followComponentRefs:!0,document:H},L=new Set,U=new Set,_=new Set;if(H.paths)for(let F of Object.values(H.paths)){if(!F)continue;let V=["get","post","put","delete","patch"];for(let Z of V){let z=F[Z];if(!z)continue;if(z.requestBody)if("$ref"in z.requestBody){let M=T(z.requestBody.$ref);if(M)L.add(M)}else{let M=z.requestBody.content,D=i(M);if(D&&"schema"in D&&D.schema)j(D.schema,L,Y)}if(z.responses)for(let[M,D]of Object.entries(z.responses)){let R=r(M);if("$ref"in D){let w=T(D.$ref);if(w)if(R)_.add(w);else U.add(w)}else if("content"in D){let E=D.content?.["application/json"];if(E&&"schema"in E&&E.schema)if(R)j(E.schema,_,Y);else j(E.schema,U,Y)}}}}if(H.paths)for(let[F,V]of Object.entries(H.paths)){if(!V)continue;let Z=["get","post","put","delete","patch"];for(let z of Z){let M=V[z];if(!M)continue;let D={},{pathParams:R,queryParams:w}=GH(V,M,H),E={};for(let[q,k]of Object.entries(R)){let P=v(q,$);E[P]=k}let p={};for(let[q,k]of Object.entries(w)){let P=v(q,$);p[P]=k}if(Object.keys(E).length>0)D.params=E;if(Object.keys(p).length>0)D.query=p;let S;if(M.requestBody)if("$ref"in M.requestBody){let q=e(M.requestBody,H);if(q!==void 0)S=q}else{let q=M.requestBody.content,k=i(q);if(k&&"schema"in k&&k.schema)if("$ref"in k.schema){let P=T(k.schema.$ref);if(P&&H.components?.schemas?.[P]&&L.has(P))S=`DevupObject<'request', '${Q}'>['${P}']`;else{let x=e(M.requestBody,H);if(x!==void 0)S=x}}else{let P=k.schema,x=q?.["multipart/form-data"]!==void 0&&!q?.["application/json"]&&!q?.["application/x-www-form-urlencoded"],I=P.type==="object"&&(!P.properties||Object.keys(P.properties).length===0)&&!P.allOf&&!P.anyOf&&!P.oneOf;if(x&&I)S="FormData | Record<string, unknown>";else{let C=e(M.requestBody,H);if(C!==void 0)S=C}}}if(S!==void 0){if(M.requestBody){if(lH(M.requestBody,H)){let k=typeof S==="string"?S:y(S);if(!k.includes("FormData"))S=`${k} | FormData`}}D.body=S}if(M.responses){let q=M.responses["200"]||M.responses["201"]||Object.values(M.responses)[0],k=FH(q,"response",U,H,Q,X,J);if(k!==void 0)D.response=k}if(M.responses){let q=M.responses["400"]||M.responses["401"]||M.responses["403"]||M.responses["404"]||M.responses["422"]||M.responses["500"]||M.responses.default||Object.entries(M.responses).find(([P])=>r(P))?.[1],k=FH(q,"error",_,H,Q,X,J);if(k!==void 0)D.error=k}let HH=F.replace(/\{([^}]+)\}/g,(q,k)=>{return`{${v(k,$)}}`});if(W[z][HH]=D,M.operationId){let q=v(M.operationId,$);W[z][q]=D}}}let G={},K={},A={};if(H.components?.schemas){let F=J?.requestDefaultNonNullable??!1,V=J?.responseDefaultNonNullable??!0;for(let[Z,z]of Object.entries(H.components.schemas))if(z){let M=z;if("enum"in M&&M.enum){let D=l(Z);O(M,H,{context:D});for(let[R,w]of D.enums)if(!X.enums.has(R))X.enums.set(R,w);continue}if(L.has(Z)){let D=l(Z),{type:R}=O(z,H,{defaultNonNullable:F,context:D,serverName:Q,componentType:"request",usedSchemaNames:L});for(let[w,E]of D.enums)if(!X.enums.has(w))X.enums.set(w,E);G[Z]=R}if(U.has(Z)){let D=l(Z),{type:R}=O(z,H,{defaultNonNullable:V,context:D,serverName:Q,componentType:"response",usedSchemaNames:U});for(let[w,E]of D.enums)if(!X.enums.has(w))X.enums.set(w,E);K[Z]=R}if(_.has(Z)){let D=l(Z),{type:R}=O(z,H,{defaultNonNullable:V,context:D,serverName:Q,componentType:"error",usedSchemaNames:_});for(let[w,E]of D.enums)if(!X.enums.has(w))X.enums.set(w,E);A[Z]=R}}}return{endpoints:W,requestComponents:G,responseComponents:K,errorComponents:A,enumDefinitions:X.enums}}function mH(H,Q){let J=[],X=new Map,W={},$={},Y={},L={},U=new Map;for(let[k,P]of Object.entries(H)){let x=m(k);J.push(x),X.set(x,k);let{endpoints:I,requestComponents:C,responseComponents:b,errorComponents:N,enumDefinitions:f}=cH(P,x,Q);W[x]=I,$[x]=C,Y[x]=b,L[x]=N;for(let[u,KH]of f)if(!U.has(u))U.set(u,KH)}let G=` interface DevupApiServers {
${J.map((k)=>` ${B(k)}: never`).join(`;
${J}}`}function JH(H){return typeof H==="object"&&H!==null&&"type"in H&&Object.keys(H).length<=2&&(!("default"in H)||Object.keys(H).length===2)}function dH(H){return typeof H==="object"&&H!==null&&"__isArray"in H&&H.__isArray===!0}function pH(H){return typeof H==="object"&&H!==null&&"__nullable"in H&&H.__nullable===!0}function iH(H){return typeof H==="object"&&H!==null&&"__componentRef"in H&&H.__componentRef===!0}function f(H,Q=0){if(typeof H==="string")return H;if(iH(H))return`DevupObject<'${H.componentType}', '${H.serverName}'>['${H.schemaName}']`;if(dH(H)){let X=`Array<${f(H.items,Q)}>`;return H.__nullable?`${X} | null`:X}if(JH(H))return f(H.type,Q);if(pH(H)){let{__nullable:J,...X}=H;return`${ZH(X,Q)} | null`}if(typeof H==="object"&&H!==null&&!Array.isArray(H))return ZH(H,Q);return String(H)}function GH(H,Q,J){let X={},W={},$={},Y=[...H?.parameters||[],...Q?.parameters||[]];for(let L of Y){if("$ref"in L){let A=g(L.$ref,J);if(A&&"in"in A&&"name"in A&&typeof A.in==="string"&&typeof A.name==="string"){let F="schema"in A&&A.schema?A.schema:{},{type:V,default:Z}=O(F,J,{defaultNonNullable:!1}),z={...A,type:V,default:Z};if(A.in==="path")X[A.name]=z;else if(A.in==="query")W[A.name]=z;else if(A.in==="header")$[A.name]=z}continue}let U=L.schema||{},{type:_,default:G}=O(U,J,{defaultNonNullable:!1}),K={...L,type:_,default:G};if(L.in==="path")X[L.name]=K;else if(L.in==="query")W[L.name]=K;else if(L.in==="header")$[L.name]=K}return{pathParams:X,queryParams:W,headerParams:$}}function e(H,Q){if(!H)return;if("$ref"in H){let X=g(H.$ref,Q);if(X&&"content"in X&&X.content){let W=X.content,$=i(W);if($&&"schema"in $&&$.schema)return O($.schema,Q,{defaultNonNullable:!1}).type}return"unknown"}let J=H.content;if(J){let X=i(J);if(X&&"schema"in X&&X.schema)return O(X.schema,Q,{defaultNonNullable:!1}).type}return}function FH(H,Q,J,X,W,$,Y){if(!H)return;if("$ref"in H)return;if(!("content"in H))return;let U=H.content?.["application/json"];if(!U||!("schema"in U)||!U.schema)return;let _=Q==="response"?"Response":"Error",G=Y?.responseDefaultNonNullable??!0,K=(F)=>{let V=l(_),{type:Z}=O(F,X,{defaultNonNullable:G,context:V,serverName:W,componentType:Q,usedSchemaNames:J});for(let[z,M]of V.enums)if(!$.enums.has(z))$.enums.set(z,M);return Z};if("$ref"in U.schema){let F=T(U.schema.$ref);if(F&&X.components?.schemas?.[F]&&J.has(F))return`DevupObject<'${Q}', '${W}'>['${F}']`;return K(U.schema)}let A=U.schema;if(A.type==="array"&&A.items&&"$ref"in A.items){let F=T(A.items.$ref);if(F&&X.components?.schemas?.[F]&&J.has(F))return`Array<DevupObject<'${Q}', '${W}'>['${F}']>`;return K(U.schema)}return K(U.schema)}function lH(H,Q){let J;if("$ref"in H)J=g(H.$ref,Q)?.content;else J=H.content;if(!J)return!1;return J["multipart/form-data"]!==void 0||J["application/x-www-form-urlencoded"]!==void 0}function cH(H,Q,J){let X=l(),W={get:{},post:{},put:{},delete:{},patch:{}},$=J?.convertCase??"camel",Y={followComponentRefs:!0,document:H},L=new Set,U=new Set,_=new Set;if(H.paths)for(let F of Object.values(H.paths)){if(!F)continue;let V=["get","post","put","delete","patch"];for(let Z of V){let z=F[Z];if(!z)continue;if(z.requestBody)if("$ref"in z.requestBody){let M=T(z.requestBody.$ref);if(M)L.add(M)}else{let M=z.requestBody.content,P=i(M);if(P&&"schema"in P&&P.schema)j(P.schema,L,Y)}if(z.responses)for(let[M,P]of Object.entries(z.responses)){let R=r(M);if("$ref"in P){let w=T(P.$ref);if(w)if(R)_.add(w);else U.add(w)}else if("content"in P){let E=P.content?.["application/json"];if(E&&"schema"in E&&E.schema)if(R)j(E.schema,_,Y);else j(E.schema,U,Y)}}}}if(H.paths)for(let[F,V]of Object.entries(H.paths)){if(!V)continue;let Z=["get","post","put","delete","patch"];for(let z of Z){let M=V[z];if(!M)continue;let P={},{pathParams:R,queryParams:w}=GH(V,M,H),E={};for(let[q,D]of Object.entries(R)){let B=v(q,$);E[B]=D}let p={};for(let[q,D]of Object.entries(w)){let B=v(q,$);p[B]=D}if(Object.keys(E).length>0)P.params=E;if(Object.keys(p).length>0)P.query=p;let S;if(M.requestBody)if("$ref"in M.requestBody){let q=e(M.requestBody,H);if(q!==void 0)S=q}else{let q=M.requestBody.content,D=i(q);if(D&&"schema"in D&&D.schema)if("$ref"in D.schema){let B=T(D.schema.$ref);if(B&&H.components?.schemas?.[B]&&L.has(B))S=`DevupObject<'request', '${Q}'>['${B}']`;else{let x=e(M.requestBody,H);if(x!==void 0)S=x}}else{let B=D.schema,x=q?.["multipart/form-data"]!==void 0&&!q?.["application/json"]&&!q?.["application/x-www-form-urlencoded"],I=B.type==="object"&&(!B.properties||Object.keys(B.properties).length===0)&&!B.allOf&&!B.anyOf&&!B.oneOf;if(x&&I)S="FormData | Record<string, unknown>";else{let C=e(M.requestBody,H);if(C!==void 0)S=C}}}if(S!==void 0){if(M.requestBody){if(lH(M.requestBody,H)){let D=typeof S==="string"?S:f(S);if(!D.includes("FormData"))S=`${D} | FormData`}}P.body=S}if(M.responses){let q=M.responses["200"]||M.responses["201"]||Object.values(M.responses)[0],D=FH(q,"response",U,H,Q,X,J);if(D!==void 0)P.response=D}if(M.responses){let q=M.responses["400"]||M.responses["401"]||M.responses["403"]||M.responses["404"]||M.responses["422"]||M.responses["500"]||M.responses.default||Object.entries(M.responses).find(([B])=>r(B))?.[1],D=FH(q,"error",_,H,Q,X,J);if(D!==void 0)P.error=D}let HH=F.replace(/\{([^}]+)\}/g,(q,D)=>{return`{${v(D,$)}}`});if(W[z][HH]=P,M.operationId){let q=v(M.operationId,$);W[z][q]=P}}}let G={},K={},A={};if(H.components?.schemas){let F=J?.requestDefaultNonNullable??!1,V=J?.responseDefaultNonNullable??!0;for(let[Z,z]of Object.entries(H.components.schemas))if(z){let M=z;if("enum"in M&&M.enum){let P=l(Z);O(M,H,{context:P});for(let[R,w]of P.enums)if(!X.enums.has(R))X.enums.set(R,w);continue}if(L.has(Z)){let P=l(Z),{type:R}=O(z,H,{defaultNonNullable:F,context:P,serverName:Q,componentType:"request",usedSchemaNames:L});for(let[w,E]of P.enums)if(!X.enums.has(w))X.enums.set(w,E);G[Z]=R}if(U.has(Z)){let P=l(Z),{type:R}=O(z,H,{defaultNonNullable:V,context:P,serverName:Q,componentType:"response",usedSchemaNames:U});for(let[w,E]of P.enums)if(!X.enums.has(w))X.enums.set(w,E);K[Z]=R}if(_.has(Z)){let P=l(Z),{type:R}=O(z,H,{defaultNonNullable:V,context:P,serverName:Q,componentType:"error",usedSchemaNames:_});for(let[w,E]of P.enums)if(!X.enums.has(w))X.enums.set(w,E);A[Z]=R}}}return{endpoints:W,requestComponents:G,responseComponents:K,errorComponents:A,enumDefinitions:X.enums}}function mH(H,Q){let J=[],X=new Map,W={},$={},Y={},L={},U=new Map;for(let[D,B]of Object.entries(H)){let x=m(D);J.push(x),X.set(x,D);let{endpoints:I,requestComponents:C,responseComponents:b,errorComponents:N,enumDefinitions:y}=cH(B,x,Q);W[x]=I,$[x]=C,Y[x]=b,L[x]=N;for(let[u,KH]of y)if(!U.has(u))U.set(u,KH)}let G=` interface DevupApiServers {
${J.map((D)=>` ${k(D)}: never`).join(`;
`)}
}`,K=[],A=["get","post","put","delete","patch"];for(let k of A){let P=[];for(let x of J){let I=W[x]?.[k];if(I&&Object.keys(I).length>0){let C=Object.entries(I).map(([N,f])=>{let u=y(f,3);return` ${B(N)}: ${u}`}).join(`;
`),b=B(x);P.push(` ${b}: {
}`,K=[],A=["get","post","put","delete","patch"];for(let D of A){let B=[];for(let x of J){let I=W[x]?.[D];if(I&&Object.keys(I).length>0){let C=Object.entries(I).map(([N,y])=>{let u=f(y,3);return` ${k(N)}: ${u}`}).join(`;
`),b=k(x);B.push(` ${b}: {
${C};
}`)}}if(P.length>0){let x=`Devup${$H.toPascal(k)}ApiStruct`;K.push(` interface ${x} {
${P.join(`;
}`)}}if(B.length>0){let x=`Devup${$H.toPascal(D)}ApiStruct`;K.push(` interface ${x} {
${B.join(`;
`)}
}`)}}let F=[],V=[],Z=[];for(let k of J){let P=B(k),x=$[k]||{};if(Object.keys(x).length>0){let b=Object.entries(x).map(([N,f])=>{let u=y(f,3);return` ${B(N)}: ${u}`}).join(`;
`);F.push(` ${P}: {
}`)}}let F=[],V=[],Z=[];for(let D of J){let B=k(D),x=$[D]||{};if(Object.keys(x).length>0){let b=Object.entries(x).map(([N,y])=>{let u=f(y,3);return` ${k(N)}: ${u}`}).join(`;
`);F.push(` ${B}: {
${b};
}`)}let I=Y[k]||{};if(Object.keys(I).length>0){let b=Object.entries(I).map(([N,f])=>{let u=y(f,3);return` ${B(N)}: ${u}`}).join(`;
`);V.push(` ${P}: {
}`)}let I=Y[D]||{};if(Object.keys(I).length>0){let b=Object.entries(I).map(([N,y])=>{let u=f(y,3);return` ${k(N)}: ${u}`}).join(`;
`);V.push(` ${B}: {
${b};
}`)}let C=L[k]||{};if(Object.keys(C).length>0){let b=Object.entries(C).map(([N,f])=>{let u=y(f,2);return` ${B(N)}: ${u}`}).join(`;
`);Z.push(` ${P}: {
}`)}let C=L[D]||{};if(Object.keys(C).length>0){let b=Object.entries(C).map(([N,y])=>{let u=f(y,2);return` ${k(N)}: ${u}`}).join(`;
`);Z.push(` ${B}: {
${b};

@@ -36,7 +36,7 @@ }`)}}let z=F.length>0?` interface DevupRequestComponentStruct {

`)}
}`:" interface DevupResponseComponentStruct {}",D=Z.length>0?` interface DevupErrorComponentStruct {
}`:" interface DevupResponseComponentStruct {}",P=Z.length>0?` interface DevupErrorComponentStruct {
${Z.join(`;
`)}
}`:" interface DevupErrorComponentStruct {}",R=[];for(let[k,P]of U){let x=P.values.map((I)=>`"${String(I)}"`).join(" | ");R.push(` type ${k} = ${x}`)}let w=[];for(let k of J){let P=[];for(let I of A){let C=W[k]?.[I],b=C?Object.keys(C):[];if(b.length>0){let N=b.map((f)=>`'${f}'`).join(" | ");P.push(` ${I}: ${N}`)}else P.push(` ${I}: never`)}let x=B(k);w.push(` ${x}: {
${P.join(`;
}`:" interface DevupErrorComponentStruct {}",R=[];for(let[D,B]of U){let x=B.values.map((I)=>`"${String(I)}"`).join(" | ");R.push(` type ${D} = ${x}`)}let w=[];for(let D of J){let B=[];for(let I of A){let C=W[D]?.[I],b=C?Object.keys(C):[];if(b.length>0){let N=b.map((y)=>`'${y}'`).join(" | ");B.push(` ${I}: ${N}`)}else B.push(` ${I}: never`)}let x=k(D);w.push(` ${x}: {
${B.join(`;
`)};

@@ -46,4 +46,4 @@ }`)}let E=w.length>0?` interface DevupPrecomputedMethodKeys {

`)}
}`:"",p=[];for(let k of J){let P=[];for(let I of A){let C=W[k]?.[I];if(C&&Object.keys(C).length>0){let b=`Devup${$H.toPascal(I)}ApiStruct`,N=B(k);P.push(` ${I}: ${b}[${N}]`)}else P.push(` ${I}: Record<string, never>`)}let x=B(k);p.push(` ${x}: {
${P.join(`;
}`:"",p=[];for(let D of J){let B=[];for(let I of A){let C=W[D]?.[I];if(C&&Object.keys(C).length>0){let b=`Devup${$H.toPascal(I)}ApiStruct`,N=k(D);B.push(` ${I}: ${b}[${N}]`)}else B.push(` ${I}: Record<string, never>`)}let x=k(D);p.push(` ${x}: {
${B.join(`;
`)};

@@ -53,3 +53,3 @@ }`)}let S=p.length>0?` interface DevupPrecomputedScopes {

`)}
}`:"",HH=[G,...K,...E?[E]:[],...S?[S]:[],z,M,D].join(`
}`:"",HH=[G,...K,...E?[E]:[],...S?[S]:[],z,M,P].join(`

@@ -64,11 +64,11 @@ `);return`import "@devup-api/fetch";

`:""}${HH}
}`}function h(H,Q,J,X){let W=X?.defaultNonNullable??!1;if("$ref"in H){let U=T(H.$ref);if(U&&J.has(U))return`z.lazy(() => ${J.get(U)})`;let _=g(H.$ref,Q);if(_)return h(_,Q,J,X);return"z.unknown()"}let $=H,Y=(U)=>{if(o($))return`${U}.nullable()`;return U},L=n($);if($.allOf){let U=$.allOf.map((_)=>h(_,Q,J,X));if(U.length===0)return"z.unknown()";if(U.length===1)return Y(U[0]);return Y(`z.intersection(${U.join(", ")})`)}if($.oneOf||$.anyOf){let U=($.oneOf||$.anyOf||[]).map((_)=>h(_,Q,J,X));if(U.length===0)return"z.unknown()";if(U.length===1)return Y(U[0]);return Y(`z.union([${U.join(", ")}])`)}if($.enum){let U=$.enum.map((_)=>JSON.stringify(_));if(U.length===1)return Y(`z.literal(${U[0]})`);return Y(`z.enum([${U.join(", ")}])`)}if(L==="string"){if($.format==="binary")return Y("z.instanceof(File)");if($.format==="email"){let _="z.email()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;return Y(_)}if($.format==="uri"||$.format==="url"){let _="z.url()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;return Y(_)}if($.format==="uuid")return Y("z.uuid()");if($.format==="date-time")return Y("z.iso.datetime()");let U="z.string()";if($.minLength!==void 0)U+=`.min(${$.minLength})`;if($.maxLength!==void 0)U+=`.max(${$.maxLength})`;if($.pattern)U+=`.regex(/${$.pattern}/)`;return Y(U)}if(L==="number"||L==="integer"){let U=L==="integer"?"z.int()":"z.number()";if($.minimum!==void 0)U+=`.min(${$.minimum})`;if($.maximum!==void 0)U+=`.max(${$.maximum})`;if($.exclusiveMinimum!==void 0)U+=`.gt(${$.exclusiveMinimum})`;if($.exclusiveMaximum!==void 0)U+=`.lt(${$.exclusiveMaximum})`;return Y(U)}if(L==="boolean")return Y("z.boolean()");if(L==="array"){if("items"in $&&$.items){let _=`z.array(${h($.items,Q,J,X)})`;if($.minItems!==void 0)_+=`.min(${$.minItems})`;if($.maxItems!==void 0)_+=`.max(${$.maxItems})`;return Y(_)}return Y("z.array(z.unknown())")}if(L==="object"||$.properties){let U=new Set($.required||[]),_=[];if($.properties)for(let[K,A]of Object.entries($.properties)){let F=h(A,Q,J,X),V=U.has(K),Z=!1;if("$ref"in A){let M=g(A.$ref,Q);if(M)Z=M.default!==void 0}else Z=A.default!==void 0;let z=F;if(!V&&!(W&&Z))z+=".optional()";_.push(`${B(K)}: ${z}`)}let G=_.length>0?`z.object({
}`}function h(H,Q,J,X){let W=X?.defaultNonNullable??!1;if("$ref"in H){let U=T(H.$ref);if(U&&J.has(U))return`z.lazy(() => ${J.get(U)})`;let _=g(H.$ref,Q);if(_)return h(_,Q,J,X);return"z.unknown()"}let $=H,Y=(U)=>{if(o($))return`${U}.nullable()`;return U},L=n($);if($.allOf){let U=$.allOf.map((_)=>h(_,Q,J,X));if(U.length===0)return"z.unknown()";if(U.length===1)return Y(U[0]);return Y(`z.intersection(${U.join(", ")})`)}if($.oneOf||$.anyOf){let U=($.oneOf||$.anyOf||[]).map((_)=>h(_,Q,J,X));if(U.length===0)return"z.unknown()";if(U.length===1)return Y(U[0]);return Y(`z.union([${U.join(", ")}])`)}if($.enum){let U=$.enum.map((_)=>JSON.stringify(_));if(U.length===1)return Y(`z.literal(${U[0]})`);return Y(`z.enum([${U.join(", ")}])`)}if(L==="string"){if($.format==="binary")return Y("z.instanceof(File)");if($.format==="email"){let _="z.email()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;return Y(_)}if($.format==="uri"||$.format==="url"){let _="z.url()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;return Y(_)}if($.format==="uuid")return Y("z.uuid()");if($.format==="date-time")return Y("z.iso.datetime()");let U="z.string()";if($.minLength!==void 0)U+=`.min(${$.minLength})`;if($.maxLength!==void 0)U+=`.max(${$.maxLength})`;if($.pattern)U+=`.regex(/${$.pattern}/)`;return Y(U)}if(L==="number"||L==="integer"){let U=L==="integer"?"z.int()":"z.number()";if($.minimum!==void 0)U+=`.min(${$.minimum})`;if($.maximum!==void 0)U+=`.max(${$.maximum})`;if($.exclusiveMinimum!==void 0)U+=`.gt(${$.exclusiveMinimum})`;if($.exclusiveMaximum!==void 0)U+=`.lt(${$.exclusiveMaximum})`;return Y(U)}if(L==="boolean")return Y("z.boolean()");if(L==="array"){if("items"in $&&$.items){let _=`z.array(${h($.items,Q,J,X)})`;if($.minItems!==void 0)_+=`.min(${$.minItems})`;if($.maxItems!==void 0)_+=`.max(${$.maxItems})`;return Y(_)}return Y("z.array(z.unknown())")}if(L==="object"||$.properties){let U=new Set($.required||[]),_=[];if($.properties)for(let[K,A]of Object.entries($.properties)){let F=h(A,Q,J,X),V=U.has(K),Z=!1;if("$ref"in A){let M=g(A.$ref,Q);if(M)Z=M.default!==void 0}else Z=A.default!==void 0;let z=F;if(!V&&!(W&&Z))z+=".optional()";_.push(`${k(K)}: ${z}`)}let G=_.length>0?`z.object({
${_.join(`,
`)}
})`:"z.object({})";if($.additionalProperties===!0)G+=".passthrough()";else if(typeof $.additionalProperties==="object"&&$.additionalProperties!==null)G+=".passthrough()";return Y(G)}return"z.unknown()"}function d(H,Q,J){let X=J?.defaultNonNullable??!1;if("$ref"in H){if(T(H.$ref))return"z.ZodLazy<z.ZodTypeAny>";let U=g(H.$ref,Q);if(U)return d(U,Q,J);return"z.ZodUnknown"}let W=H,$=(L)=>{if(o(W))return`z.ZodNullable<${L}>`;return L},Y=n(W);if(W.allOf){let L=W.allOf.map((_)=>d(_,Q,J));if(L.length===0)return"z.ZodUnknown";if(L.length===1)return $(L[0]);let U=L[0];for(let _=1;_<L.length;_++)U=`z.ZodIntersection<${U}, ${L[_]}>`;return $(U)}if(W.oneOf||W.anyOf){let L=(W.oneOf||W.anyOf||[]).map((U)=>d(U,Q,J));if(L.length===0)return"z.ZodUnknown";if(L.length===1)return $(L[0]);return $(`z.ZodUnion<[${L.join(", ")}]>`)}if(W.enum){let L=W.enum.map((U)=>JSON.stringify(U));if(L.length===1)return $(`z.ZodLiteral<${L[0]}>`);return $(`z.ZodEnum<[${L.join(", ")}]>`)}if(Y==="string"){if(W.format==="binary")return $("z.ZodType<File>");return $("z.ZodString")}if(Y==="number"||Y==="integer")return $("z.ZodNumber");if(Y==="boolean")return $("z.ZodBoolean");if(Y==="array"){if("items"in W&&W.items){let L=d(W.items,Q,J);return $(`z.ZodArray<${L}>`)}return $("z.ZodArray<z.ZodUnknown>")}if(Y==="object"||W.properties){let L=new Set(W.required||[]),U=[];if(W.properties)for(let[G,K]of Object.entries(W.properties)){let A=d(K,Q,J),F=L.has(G),V=!1;if("$ref"in K){let z=g(K.$ref,Q);if(z)V=z.default!==void 0}else V=K.default!==void 0;let Z=A;if(!F&&!(X&&V))Z=`z.ZodOptional<${A}>`;U.push(`${B(G)}: ${Z}`)}let _=U.length>0?`z.ZodObject<{ ${U.join("; ")} }>`:"z.ZodObject<Record<string, never>>";return $(_)}return"z.ZodUnknown"}function rH(H,Q){let J=new Set,X=new Set,W=new Set,$={get:{},post:{},put:{},delete:{},patch:{}},Y=Q?.convertCase??"camel",L=(U)=>{if("$ref"in U)return T(U.$ref);let _=U.content;for(let G of t){let K=_?.[G];if(K?.schema&&"$ref"in K.schema)return T(K.schema.$ref)}return null};if(H.paths)for(let[U,_]of Object.entries(H.paths)){if(!_)continue;let G=["get","post","put","delete","patch"];for(let K of G){let A=_[K];if(!A)continue;let F=U.replace(/\{([^}]+)\}/g,(M,D)=>{return`{${v(D,Y)}}`}),V=A.operationId?v(A.operationId,Y):null,Z=null;if(A.requestBody)if(Z=L(A.requestBody),"$ref"in A.requestBody){let M=T(A.requestBody.$ref);if(M)J.add(M)}else{let M=A.requestBody.content;for(let D of t){let R=M?.[D];if(R?.schema){j(R.schema,J);break}}}let z={schemaName:Z,operationId:V};if($[K][F]=z,V)$[K][V]=z;if(A.responses)for(let[M,D]of Object.entries(A.responses)){let R=r(M);if("$ref"in D){let w=T(D.$ref);if(w)if(R)W.add(w);else X.add(w)}else if("content"in D){let E=D.content?.["application/json"];if(E?.schema)if(R)j(E.schema,W);else j(E.schema,X)}}}}return{requestSchemaNames:J,responseSchemaNames:X,errorSchemaNames:W,pathMappings:$}}function zH(H,Q,J){let{requestSchemaNames:X,responseSchemaNames:W,errorSchemaNames:$,pathMappings:Y}=rH(H,J),L={},U={},_={},G=new Map;if(H.components?.schemas)for(let V of Object.keys(H.components.schemas))G.set(V,`_${V}`);if(H.components?.schemas)for(let[V,Z]of Object.entries(H.components.schemas)){if(!Z)continue;let z=J?.requestDefaultNonNullable??!1,M=J?.responseDefaultNonNullable??!0,D=X.has(V),R=W.has(V),w=$.has(V),E=Z;if(D)L[V]={code:h(E,H,G,{defaultNonNullable:z}),type:d(E,H,{defaultNonNullable:z})};if(R)U[V]={code:h(E,H,G,{defaultNonNullable:M}),type:d(E,H,{defaultNonNullable:M})};if(w)_[V]={code:h(E,H,G,{defaultNonNullable:M}),type:d(E,H,{defaultNonNullable:M})}}let K=new Set([...X,...W,...$]),A=new Set;for(let V of K){let Z=H.components?.schemas?.[V];if(Z)j(Z,A,{followComponentRefs:!0,document:H})}let F={};for(let V of A){let Z=H.components?.schemas?.[V];if(!Z)continue;let z=Z;F[V]={code:h(z,H,G),type:d(z,H)}}return{requestSchemas:L,responseSchemas:U,errorSchemas:_,dependencySchemas:F,pathMappings:Y}}function oH(H,Q){let J={};for(let[$,Y]of Object.entries(H)){let L=m($);J[L]=zH(Y,L,Q)}let X=['import { z } from "zod";',""];for(let[$,Y]of Object.entries(J)){let L=$.replace(/[^a-zA-Z0-9]/g,"_");if(Object.keys(Y.dependencySchemas).length>0){X.push(`// Shared dependency schemas for ${$}`);for(let[U,_]of Object.entries(Y.dependencySchemas))X.push(`const _${U} = ${_.code};`);X.push("")}if(Object.keys(Y.requestSchemas).length>0){X.push(`// Request schemas for ${$}`);for(let[U,_]of Object.entries(Y.requestSchemas))X.push(`const ${L}_request_${U} = ${_.code};`);X.push("")}if(Object.keys(Y.responseSchemas).length>0){X.push(`// Response schemas for ${$}`);for(let[U,_]of Object.entries(Y.responseSchemas))X.push(`const ${L}_response_${U} = ${_.code};`);X.push("")}if(Object.keys(Y.errorSchemas).length>0){X.push(`// Error schemas for ${$}`);for(let[U,_]of Object.entries(Y.errorSchemas))X.push(`const ${L}_error_${U} = ${_.code};`);X.push("")}}X.push("// Exported schemas");for(let[$,Y]of Object.entries(J)){let L=$.replace(/[^a-zA-Z0-9]/g,"_"),U=Object.keys(Y.requestSchemas).map((A)=>` ${B(A)}: ${L}_request_${A}`).join(`,
`);X.push(`export const ${L}_requestSchemas = {`),X.push(U||""),X.push("};"),X.push("");let _=Object.keys(Y.responseSchemas).map((A)=>` ${B(A)}: ${L}_response_${A}`).join(`,
`);X.push(`export const ${L}_responseSchemas = {`),X.push(_||""),X.push("};"),X.push("");let G=Object.keys(Y.errorSchemas).map((A)=>` ${B(A)}: ${L}_error_${A}`).join(`,
`);X.push(`export const ${L}_errorSchemas = {`),X.push(G||""),X.push("};"),X.push("");let K=["post","put","patch","delete"];for(let A of K){let F=[],V=Y.pathMappings[A];for(let[Z,z]of Object.entries(V))if(z.schemaName&&Y.requestSchemas[z.schemaName])F.push(` ${B(Z)}: ${L}_request_${z.schemaName}`);if(F.length>0)X.push(`export const ${L}_${A}PathSchemas = {`),X.push(F.join(`,
`)),X.push("};"),X.push("");else X.push(`export const ${L}_${A}PathSchemas = {};`),X.push("")}}let W=Object.keys(J);if(W.length===1){let $=W[0].replace(/[^a-zA-Z0-9]/g,"_");X.push("export const schemas = {"),X.push(` request: ${$}_requestSchemas,`),X.push(` response: ${$}_responseSchemas,`),X.push(` error: ${$}_errorSchemas,`),X.push("};"),X.push(""),X.push(`export const requestSchemas = ${$}_requestSchemas;`),X.push(`export const responseSchemas = ${$}_responseSchemas;`),X.push(`export const errorSchemas = ${$}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings"),X.push(`export const postPathSchemas = ${$}_postPathSchemas;`),X.push(`export const putPathSchemas = ${$}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${$}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${$}_deletePathSchemas;`),X.push(""),X.push("export const pathSchemas = {"),X.push(" post: postPathSchemas,"),X.push(" put: putPathSchemas,"),X.push(" patch: patchPathSchemas,"),X.push(" delete: deletePathSchemas,"),X.push("};")}else{X.push("export const schemas = {");for(let $ of W){let Y=$.replace(/[^a-zA-Z0-9]/g,"_");X.push(` ${B($)}: {`),X.push(` request: ${Y}_requestSchemas,`),X.push(` response: ${Y}_responseSchemas,`),X.push(` error: ${Y}_errorSchemas,`),X.push(" },")}if(X.push("};"),W.length>0){let Y=W[0].replace(/[^a-zA-Z0-9]/g,"_");X.push(""),X.push("// Default server exports (first server)"),X.push(`export const requestSchemas = ${Y}_requestSchemas;`),X.push(`export const responseSchemas = ${Y}_responseSchemas;`),X.push(`export const errorSchemas = ${Y}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings (first server)"),X.push(`export const postPathSchemas = ${Y}_postPathSchemas;`),X.push(`export const putPathSchemas = ${Y}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${Y}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${Y}_deletePathSchemas;`),X.push(""),X.push("export const pathSchemas = {"),X.push(" post: postPathSchemas,"),X.push(" put: putPathSchemas,"),X.push(" patch: patchPathSchemas,"),X.push(" delete: deletePathSchemas,"),X.push("};")}}return X.join(`
`)}function nH(H,Q){let J={};for(let[W,$]of Object.entries(H)){let Y=m(W);J[Y]=zH($,Y,Q)}let X=['import "@devup-api/zod";','import type { z } from "zod";',"",'declare module "@devup-api/zod" {'];for(let[W,$]of Object.entries(J)){if(Object.keys($.requestSchemas).length>0){X.push(" interface DevupZodRequestSchemas {"),X.push(` ${B(W)}: {`);for(let[Y,L]of Object.entries($.requestSchemas))X.push(` ${B(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.responseSchemas).length>0){X.push(" interface DevupZodResponseSchemas {"),X.push(` ${B(W)}: {`);for(let[Y,L]of Object.entries($.responseSchemas))X.push(` ${B(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.errorSchemas).length>0){X.push(" interface DevupZodErrorSchemas {"),X.push(` ${B(W)}: {`);for(let[Y,L]of Object.entries($.errorSchemas))X.push(` ${B(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}}return X.push("}"),X.join(`
})`:"z.object({})";if($.additionalProperties===!0)G+=".passthrough()";else if(typeof $.additionalProperties==="object"&&$.additionalProperties!==null)G+=".passthrough()";return Y(G)}return"z.unknown()"}function d(H,Q,J){let X=J?.defaultNonNullable??!1;if("$ref"in H){if(T(H.$ref))return"z.ZodLazy<z.ZodTypeAny>";let U=g(H.$ref,Q);if(U)return d(U,Q,J);return"z.ZodUnknown"}let W=H,$=(L)=>{if(o(W))return`z.ZodNullable<${L}>`;return L},Y=n(W);if(W.allOf){let L=W.allOf.map((_)=>d(_,Q,J));if(L.length===0)return"z.ZodUnknown";if(L.length===1)return $(L[0]);let U=L[0];for(let _=1;_<L.length;_++)U=`z.ZodIntersection<${U}, ${L[_]}>`;return $(U)}if(W.oneOf||W.anyOf){let L=(W.oneOf||W.anyOf||[]).map((U)=>d(U,Q,J));if(L.length===0)return"z.ZodUnknown";if(L.length===1)return $(L[0]);return $(`z.ZodUnion<[${L.join(", ")}]>`)}if(W.enum){let L=W.enum.map((U)=>JSON.stringify(U));if(L.length===1)return $(`z.ZodLiteral<${L[0]}>`);return $(`z.ZodEnum<[${L.join(", ")}]>`)}if(Y==="string"){if(W.format==="binary")return $("z.ZodType<File>");return $("z.ZodString")}if(Y==="number"||Y==="integer")return $("z.ZodNumber");if(Y==="boolean")return $("z.ZodBoolean");if(Y==="array"){if("items"in W&&W.items){let L=d(W.items,Q,J);return $(`z.ZodArray<${L}>`)}return $("z.ZodArray<z.ZodUnknown>")}if(Y==="object"||W.properties){let L=new Set(W.required||[]),U=[];if(W.properties)for(let[G,K]of Object.entries(W.properties)){let A=d(K,Q,J),F=L.has(G),V=!1;if("$ref"in K){let z=g(K.$ref,Q);if(z)V=z.default!==void 0}else V=K.default!==void 0;let Z=A;if(!F&&!(X&&V))Z=`z.ZodOptional<${A}>`;U.push(`${k(G)}: ${Z}`)}let _=U.length>0?`z.ZodObject<{ ${U.join("; ")} }>`:"z.ZodObject<Record<string, never>>";return $(_)}return"z.ZodUnknown"}function rH(H,Q){let J=new Set,X=new Set,W=new Set,$={get:{},post:{},put:{},delete:{},patch:{}},Y=Q?.convertCase??"camel",L=(U)=>{if("$ref"in U)return T(U.$ref);let _=U.content;for(let G of t){let K=_?.[G];if(K?.schema&&"$ref"in K.schema)return T(K.schema.$ref)}return null};if(H.paths)for(let[U,_]of Object.entries(H.paths)){if(!_)continue;let G=["get","post","put","delete","patch"];for(let K of G){let A=_[K];if(!A)continue;let F=U.replace(/\{([^}]+)\}/g,(M,P)=>{return`{${v(P,Y)}}`}),V=A.operationId?v(A.operationId,Y):null,Z=null;if(A.requestBody)if(Z=L(A.requestBody),"$ref"in A.requestBody){let M=T(A.requestBody.$ref);if(M)J.add(M)}else{let M=A.requestBody.content;for(let P of t){let R=M?.[P];if(R?.schema){j(R.schema,J);break}}}let z={schemaName:Z,operationId:V};if($[K][F]=z,V)$[K][V]=z;if(A.responses)for(let[M,P]of Object.entries(A.responses)){let R=r(M);if("$ref"in P){let w=T(P.$ref);if(w)if(R)W.add(w);else X.add(w)}else if("content"in P){let E=P.content?.["application/json"];if(E?.schema)if(R)j(E.schema,W);else j(E.schema,X)}}}}return{requestSchemaNames:J,responseSchemaNames:X,errorSchemaNames:W,pathMappings:$}}function zH(H,Q,J){let{requestSchemaNames:X,responseSchemaNames:W,errorSchemaNames:$,pathMappings:Y}=rH(H,J),L={},U={},_={},G=new Map;if(H.components?.schemas)for(let V of Object.keys(H.components.schemas))G.set(V,`_${V}`);if(H.components?.schemas)for(let[V,Z]of Object.entries(H.components.schemas)){if(!Z)continue;let z=J?.requestDefaultNonNullable??!1,M=J?.responseDefaultNonNullable??!0,P=X.has(V),R=W.has(V),w=$.has(V),E=Z;if(P)L[V]={code:h(E,H,G,{defaultNonNullable:z}),type:d(E,H,{defaultNonNullable:z})};if(R)U[V]={code:h(E,H,G,{defaultNonNullable:M}),type:d(E,H,{defaultNonNullable:M})};if(w)_[V]={code:h(E,H,G,{defaultNonNullable:M}),type:d(E,H,{defaultNonNullable:M})}}let K=new Set([...X,...W,...$]),A=new Set;for(let V of K){let Z=H.components?.schemas?.[V];if(Z)j(Z,A,{followComponentRefs:!0,document:H})}let F={};for(let V of A){let Z=H.components?.schemas?.[V];if(!Z)continue;let z=Z;F[V]={code:h(z,H,G),type:d(z,H)}}return{requestSchemas:L,responseSchemas:U,errorSchemas:_,dependencySchemas:F,pathMappings:Y}}function oH(H,Q){let J={};for(let[$,Y]of Object.entries(H)){let L=m($);J[L]=zH(Y,L,Q)}let X=['import { z } from "zod";',""];for(let[$,Y]of Object.entries(J)){let L=$.replace(/[^a-zA-Z0-9]/g,"_");if(Object.keys(Y.dependencySchemas).length>0){X.push(`// Shared dependency schemas for ${$}`);for(let[U,_]of Object.entries(Y.dependencySchemas))X.push(`const _${U} = ${_.code};`);X.push("")}if(Object.keys(Y.requestSchemas).length>0){X.push(`// Request schemas for ${$}`);for(let[U,_]of Object.entries(Y.requestSchemas))X.push(`const ${L}_request_${U} = ${_.code};`);X.push("")}if(Object.keys(Y.responseSchemas).length>0){X.push(`// Response schemas for ${$}`);for(let[U,_]of Object.entries(Y.responseSchemas))X.push(`const ${L}_response_${U} = ${_.code};`);X.push("")}if(Object.keys(Y.errorSchemas).length>0){X.push(`// Error schemas for ${$}`);for(let[U,_]of Object.entries(Y.errorSchemas))X.push(`const ${L}_error_${U} = ${_.code};`);X.push("")}}X.push("// Exported schemas");for(let[$,Y]of Object.entries(J)){let L=$.replace(/[^a-zA-Z0-9]/g,"_"),U=Object.keys(Y.requestSchemas).map((A)=>` ${k(A)}: ${L}_request_${A}`).join(`,
`);X.push(`export const ${L}_requestSchemas = {`),X.push(U||""),X.push("};"),X.push("");let _=Object.keys(Y.responseSchemas).map((A)=>` ${k(A)}: ${L}_response_${A}`).join(`,
`);X.push(`export const ${L}_responseSchemas = {`),X.push(_||""),X.push("};"),X.push("");let G=Object.keys(Y.errorSchemas).map((A)=>` ${k(A)}: ${L}_error_${A}`).join(`,
`);X.push(`export const ${L}_errorSchemas = {`),X.push(G||""),X.push("};"),X.push("");let K=["post","put","patch","delete"];for(let A of K){let F=[],V=Y.pathMappings[A];for(let[Z,z]of Object.entries(V))if(z.schemaName&&Y.requestSchemas[z.schemaName])F.push(` ${k(Z)}: ${L}_request_${z.schemaName}`);if(F.length>0)X.push(`export const ${L}_${A}PathSchemas = {`),X.push(F.join(`,
`)),X.push("};"),X.push("");else X.push(`export const ${L}_${A}PathSchemas = {};`),X.push("")}}let W=Object.keys(J);if(W.length===1){let $=W[0].replace(/[^a-zA-Z0-9]/g,"_");X.push("export const schemas = {"),X.push(` request: ${$}_requestSchemas,`),X.push(` response: ${$}_responseSchemas,`),X.push(` error: ${$}_errorSchemas,`),X.push("};"),X.push(""),X.push(`export const requestSchemas = ${$}_requestSchemas;`),X.push(`export const responseSchemas = ${$}_responseSchemas;`),X.push(`export const errorSchemas = ${$}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings"),X.push(`export const postPathSchemas = ${$}_postPathSchemas;`),X.push(`export const putPathSchemas = ${$}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${$}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${$}_deletePathSchemas;`),X.push(""),X.push("export const pathSchemas = {"),X.push(" post: postPathSchemas,"),X.push(" put: putPathSchemas,"),X.push(" patch: patchPathSchemas,"),X.push(" delete: deletePathSchemas,"),X.push("};")}else{X.push("export const schemas = {");for(let $ of W){let Y=$.replace(/[^a-zA-Z0-9]/g,"_");X.push(` ${k($)}: {`),X.push(` request: ${Y}_requestSchemas,`),X.push(` response: ${Y}_responseSchemas,`),X.push(` error: ${Y}_errorSchemas,`),X.push(" },")}if(X.push("};"),W.length>0){let Y=W[0].replace(/[^a-zA-Z0-9]/g,"_");X.push(""),X.push("// Default server exports (first server)"),X.push(`export const requestSchemas = ${Y}_requestSchemas;`),X.push(`export const responseSchemas = ${Y}_responseSchemas;`),X.push(`export const errorSchemas = ${Y}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings (first server)"),X.push(`export const postPathSchemas = ${Y}_postPathSchemas;`),X.push(`export const putPathSchemas = ${Y}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${Y}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${Y}_deletePathSchemas;`),X.push(""),X.push("export const pathSchemas = {"),X.push(" post: postPathSchemas,"),X.push(" put: putPathSchemas,"),X.push(" patch: patchPathSchemas,"),X.push(" delete: deletePathSchemas,"),X.push("};")}}return X.join(`
`)}function nH(H,Q){let J={};for(let[W,$]of Object.entries(H)){let Y=m(W);J[Y]=zH($,Y,Q)}let X=['import "@devup-api/zod";','import type { z } from "zod";',"",'declare module "@devup-api/zod" {'];for(let[W,$]of Object.entries(J)){if(Object.keys($.requestSchemas).length>0){X.push(" interface DevupZodRequestSchemas {"),X.push(` ${k(W)}: {`);for(let[Y,L]of Object.entries($.requestSchemas))X.push(` ${k(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.responseSchemas).length>0){X.push(" interface DevupZodResponseSchemas {"),X.push(` ${k(W)}: {`);for(let[Y,L]of Object.entries($.responseSchemas))X.push(` ${k(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.errorSchemas).length>0){X.push(" interface DevupZodErrorSchemas {"),X.push(` ${k(W)}: {`);for(let[Y,L]of Object.entries($.errorSchemas))X.push(` ${k(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}}return X.push("}"),X.join(`
`)}

@@ -1,4 +0,4 @@

import{toCamel as AH,toPascal as ZH,toSnake as MH}from"@devup-api/utils";function v(H,Q="camel"){switch(Q){case"snake":return MH(H);case"camel":return AH(H);case"pascal":return ZH(H);case"maintain":return H;default:return H}}var n=["application/json","application/x-www-form-urlencoded","multipart/form-data"];function g(H,Q){if(!H.startsWith("#/"))return null;let J=H.slice(2).split("/"),X=Q;for(let W of J)if(X&&typeof X==="object"&&W in X)X=X[W];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function l(H){if(!H)return;for(let Q of n)if(H[Q])return H[Q];return}function b(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function c(H){return H.replace(/^\.\//,"")}function m(H){if(H==="default")return!0;let Q=parseInt(H,10);return Q>=400&&Q<600}function r(H){if("nullable"in H&&H.nullable===!0)return!0;if(Array.isArray(H.type)&&H.type.includes("null"))return!0;return!1}function o(H){if(Array.isArray(H.type))return H.type.find((Q)=>Q!=="null");return H.type}function C(H,Q,J){if("$ref"in H){let W=b(H.$ref);if(W){if(Q.add(W),J?.followComponentRefs&&J.document){let $=J.visited??new Set;if($.has(W))return;$.add(W);let Y=J.document.components?.schemas?.[W];if(Y)C(Y,Q,{...J,visited:$})}}return}let X=H;if(X.allOf)for(let W of X.allOf)C(W,Q,J);if(X.anyOf)for(let W of X.anyOf)C(W,Q,J);if(X.oneOf)for(let W of X.oneOf)C(W,Q,J);if(X.properties)for(let W of Object.values(X.properties))C(W,Q,J);if(X.type==="array"&&"items"in X&&X.items)C(X.items,Q,J)}function VH(H,Q){let J=H.requestBody;if(!J)return;let X;if("$ref"in J)X=g(J.$ref,Q)?.content;else X=J.content;if(!X)return;if(X["application/x-www-form-urlencoded"])return"form";if(X["multipart/form-data"])return"multipart";return}function dH(H,Q){let J=Q?.convertCase??"camel",X={};for(let[W,$]of Object.entries(H)){let Y={};for(let[L,U]of Object.entries($.paths??{})){if(!U)continue;for(let _ of["get","post","put","delete","patch"]){let G=U[_];if(!G)continue;let K=L.replace(/\{([^}]+)\}/g,(Z,z)=>{return`{${v(z,J)}}`}),A=VH(G,$),F=_.toUpperCase(),V={url:K,...A&&{bodyType:A}};if(G.operationId){let Z=v(G.operationId,J);Y[Z]={...Y[Z],[F]:V}}Y[K]={...Y[K],[F]:V}}}X[W]=Y}return X}import{toPascal as e}from"@devup-api/utils";var GH=/^devup:([a-zA-Z][a-zA-Z0-9_-]*):(\w+)$/,FH=["one","create","edit","fix"];function zH(H){let Q=H.match(GH);if(!Q)return null;let[,J,X]=Q,W=X;if(!FH.includes(W))return null;return{raw:H,name:J,mode:W}}function KH(H){let Q=[],J=/\{([^}]+)\}/g,X=J.exec(H);while(X!==null)Q.push(X[1]),X=J.exec(H);return Q}function kH(H){switch(H){case"get":return"one";case"post":return"create";case"put":return"edit";case"patch":return"fix";default:return null}}function DH(H,Q){let J;if("$ref"in H){let $=g(H.$ref,Q);if(!$)return[];J=$}else J=H;if(J.type!=="object"||!J.properties)return[];let X=new Set(J.required??[]),W=[];for(let[$,Y]of Object.entries(J.properties)){if("$ref"in Y)continue;let L=Y,U={name:$,type:L.type??"string",required:X.has($)};if(L.format)U.format=L.format;if(L.description)U.description=L.description;if(L.minimum!==void 0)U.minimum=L.minimum;if(L.maximum!==void 0)U.maximum=L.maximum;if(L.minLength!==void 0)U.minLength=L.minLength;if(L.maxLength!==void 0)U.maxLength=L.maxLength;if(L.pattern)U.pattern=L.pattern;if(L.enum)U.enum=L.enum;W.push(U)}return W}function PH(H,Q){let J=H.requestBody;if(!J)return[];let X;if("$ref"in J)return[];else X=J;let W=X.content?.["application/json"];if(!W?.schema)return[];return DH(W.schema,Q)}function BH(H){let Q=[];if(!H.paths)return Q;let J=["get","post","put","patch","delete"];for(let[X,W]of Object.entries(H.paths)){if(!W)continue;for(let $ of J){let Y=W[$];if(!Y)continue;let L=[];if(Y.tags)for(let U of Y.tags){let _=zH(U);if(_){let G=kH($);if(G&&_.mode===G)L.push(_)}}if(L.length>0)Q.push({method:$,path:X,operationId:Y.operationId,tags:L,params:KH(X),operation:Y})}}return Q}function EH(H,Q){let J={};for(let W of H)for(let $ of W.tags){if(!J[$.name])J[$.name]={name:$.name};if(!W.operationId){console.warn(`Skipping ${W.method.toUpperCase()} ${W.path} - missing operationId`);continue}let Y=["post","put","patch"].includes(W.method)?PH(W.operation,Q):void 0,L={method:W.method,operationId:W.operationId,fields:Y},U=J[$.name];switch($.mode){case"one":U.one=L;break;case"create":U.create=L;break;case"edit":U.edit=L;break;case"fix":U.fix=L;break}}let X={};for(let[W,$]of Object.entries(J))if($.one&&$.create)X[W]=$;return X}function wH(H){let Q=BH(H);return EH(Q,H)}function a(H){let Q={};for(let J of Object.values(H)){let X=wH(J);Object.assign(Q,X)}return Q}function B(H){if(H==="")return H;let Q=H.endsWith("?"),J=Q?H.slice(0,-1):H;if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(J)||J.includes("'")){let $=`'${J.includes("'")?J.replace(/'/g,"\\'"):J}'`;return Q?`${$}?`:$}return H}function XH(H){return H.replace(/([A-Z])/g," $1").replace(/[-_]/g," ").trim().split(" ").map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1).toLowerCase()).join(" ")}function xH(H){if(H.format==="email")return"email";if(H.format==="uri"||H.format==="url")return"url";if(H.format==="date")return"date";if(H.format==="date-time")return"datetime-local";if(H.format==="time")return"time";if(H.format==="password")return"password";if(H.type==="number"||H.type==="integer")return"number";return"text"}function RH(H){let Q=[];if(H.required)Q.push("required: true");if(H.minLength!==void 0)Q.push(`minLength: ${H.minLength}`);if(H.maxLength!==void 0)Q.push(`maxLength: ${H.maxLength}`);if(H.minimum!==void 0)Q.push(`min: ${H.minimum}`);if(H.maximum!==void 0)Q.push(`max: ${H.maximum}`);if(H.pattern)Q.push(`pattern: /${H.pattern}/`);if(H.type==="number"||H.type==="integer")Q.push("valueAsNumber: true");return Q.length>0?`{ ${Q.join(", ")} }`:""}function IH(H,Q){let J=[],X=xH(H),W=XH(H.name),$=RH(H),Y=$?`register('${H.name}', ${$})`:`register('${H.name}')`;if(H.enum&&H.enum.length>0){J.push(`${Q}<div>`),J.push(`${Q} <label htmlFor="${H.name}">${W}</label>`),J.push(`${Q} <select id="${H.name}" {...${Y}}>`),J.push(`${Q} <option value="">Select...</option>`);for(let L of H.enum)J.push(`${Q} <option value="${L}">${XH(L)}</option>`);return J.push(`${Q} </select>`),J.push(`${Q} {errors.${H.name} && <span>Invalid</span>}`),J.push(`${Q}</div>`),J}if(H.type==="boolean")return J.push(`${Q}<div>`),J.push(`${Q} <label>`),J.push(`${Q} <input type="checkbox" {...${Y}} />`),J.push(`${Q} ${W}`),J.push(`${Q} </label>`),J.push(`${Q} {errors.${H.name} && <span>Invalid</span>}`),J.push(`${Q}</div>`),J;if(J.push(`${Q}<div>`),J.push(`${Q} <label htmlFor="${H.name}">${W}</label>`),J.push(`${Q} <input`),J.push(`${Q} id="${H.name}"`),J.push(`${Q} type="${X}"`),J.push(`${Q} {...${Y}}`),H.description)J.push(`${Q} placeholder="${H.description}"`);return J.push(`${Q} />`),J.push(`${Q} {errors.${H.name} && <span>${H.required?"Required":"Invalid"}</span>}`),J.push(`${Q}</div>`),J}function qH(H,Q){let J=[],X=`${H}Fields`;if(J.push(`function ${X}() {`),J.push(" const { register, formState: { errors } } = useFormContext();"),J.push(""),J.push(" return ("),J.push(" <>"),Q.length>0)for(let W of Q){let $=IH(W," ");J.push(...$)}else J.push(" {/* No fields defined in OpenAPI schema */}");return J.push(""),J.push(' <button type="submit">Submit</button>'),J.push(" </>"),J.push(" );"),J.push("}"),J}function gH(H,Q){let J=[],X=`${e(H)}Crud`,W=`${X}Fields`,$=Q.edit??Q.fix,Y=$?.method??"put",L=$?.operationId;if(J.push(`export function ${X}({`),J.push(" apiClient,"),J.push(" params,"),J.push(" onSuccess,"),J.push(" onError,"),J.push("}) {"),J.push(" const isEdit = !!params;"),J.push(""),J.push(" return ("),J.push(" <ApiForm"),J.push(" api={apiClient}"),J.push(` method={isEdit ? '${Y}' : 'post'}`),L)J.push(` path={isEdit ? '${L}' : '${Q.create.operationId}'}`);else J.push(` path={'${Q.create.operationId}'}`);return J.push(" requestOptions={isEdit ? { params } : undefined}"),J.push(" fetchDefaultValues={isEdit ? {"),J.push(` path: '${Q.one.operationId}',`),J.push(" options: { params },"),J.push(" } : undefined}"),J.push(" onSuccess={onSuccess}"),J.push(" onError={onError}"),J.push(" >"),J.push(` <${W} />`),J.push(" </ApiForm>"),J.push(" );"),J.push("}"),J}function nH(H){let Q=a(H),J=[];J.push("// Auto-generated CRUD components from OpenAPI specs"),J.push("// Do not edit this file directly"),J.push("'use client';"),J.push(""),J.push("import { ApiForm, useFormContext } from '@devup-api/hookform';"),J.push("");for(let[X,W]of Object.entries(Q)){let $=`${e(X)}Crud`,Y=W.create.fields??[];J.push("// ============================================"),J.push(`// ${$}`),J.push("// ============================================"),J.push("");let L=qH($,Y);J.push(...L),J.push("");let U=gH(X,W);J.push(...U),J.push("")}J.push("export default {");for(let X of Object.keys(Q)){let W=`${e(X)}Crud`;J.push(` ${X}: ${W},`)}return J.push("};"),J.join(`
`)}function tH(H){let Q=a(H),J=Object.keys(Q),X=[];if(X.push("import '@devup-api/ui'"),X.push(""),J.length>0){X.push("declare module '@devup-api/ui' {"),X.push(" interface DevupCrudApiNames {");for(let W of J)X.push(` ${B(W)}: true`);X.push(" }"),X.push("}"),X.push("")}return X.push("declare module '@devup-api/ui/crud' {"),X.push(" import type { CrudComponents } from '@devup-api/ui'"),X.push(""),X.push(" const crudComponents: CrudComponents"),X.push(" export default crudComponents"),X.push("}"),X.join(`
`)}import{toPascal as LH}from"@devup-api/utils";function i(H){return{enums:new Map,propertyPath:[],schemaName:H}}function jH(H,Q){let J=[];if(H.schemaName)J.push(H.schemaName);if(H.propertyPath.length>0)J.push(...H.propertyPath);if(J.length===0)return`${Q.slice(0,3).map(($)=>String($).charAt(0).toUpperCase()+String($).slice(1)).join("")}Enum`;return J.map((W)=>{return W.replace(/[^a-zA-Z0-9]/g," ").split(" ").filter(Boolean).map(($)=>$.charAt(0).toUpperCase()+$.slice(1)).join("")}).join("")}function j(H,Q,J){let X=J?.defaultNonNullable??!1,W=J?.context;if(W&&J?.propertyName)W.propertyPath.push(J.propertyName);try{if("$ref"in H){let U=H.$ref.startsWith("#/components/schemas/")?H.$ref.replace("#/components/schemas/",""):void 0,_=g(H.$ref,Q);if(!_)return{type:"unknown",default:void 0};if(U&&J?.serverName&&J?.componentType&&J?.usedSchemaNames?.has(U)){if("enum"in _&&_.enum)return{type:U,default:void 0};return{type:{__componentRef:!0,schemaName:U,serverName:J.serverName,componentType:J.componentType},default:void 0}}let G=W&&U?{...W,schemaName:U,propertyPath:[]}:W;return j(_,Q,{...J,context:G,propertyName:void 0})}let $=H;if($.allOf){let U=$.allOf.map((_)=>j(_,Q,{...J,propertyName:void 0}));return{type:U.length>0?U.map((_)=>y(_.type)).join(" & "):"unknown",default:$.default}}if($.anyOf||$.oneOf){let U=($.anyOf||$.oneOf||[]).map((_)=>j(_,Q,{...J,propertyName:void 0}));return{type:U.length>0?`(${U.map((_)=>y(_.type)).join(" | ")})`:"unknown",default:$.default}}let Y=r($);if($.enum){if(W){let _=jH(W,$.enum);if(!W.enums.get(_))W.enums.set(_,{name:_,values:$.enum,nullable:Y});return{type:Y?`${_} | null`:_,default:$.default}}let U=$.enum.map((_)=>`"${String(_)}"`).join(" | ");return{type:Y?`${U} | null`:U,default:$.default}}let L=o($);if(L==="string"){if($.format==="binary")return{type:Y?"File | Blob | null":"File | Blob",default:$.default};return{type:Y?"string | null":"string",default:$.default}}if(L==="number"||L==="integer")return{type:Y?"number | null":"number",default:$.default};if(L==="boolean")return{type:Y?"boolean | null":"boolean",default:$.default};if(L==="array"){let U="items"in $?$.items:void 0;if(U){let _=j(U,Q,{...J,propertyName:void 0});return{type:Y?{__isArray:!0,items:_.type,__nullable:!0}:{__isArray:!0,items:_.type},default:$.default}}return{type:Y?"unknown[] | null":"unknown[]",default:$.default}}if(L==="object"||$.properties){let U={},_=$.required||[];if($.properties)for(let[G,K]of Object.entries($.properties)){let A=j(K,Q,{...J,propertyName:G}),F=!1;if("$ref"in K){let Z=g(K.$ref,Q);if(Z)F=Z.default!==void 0}else F=K.default!==void 0;let V=_.includes(G);if(X&&F&&!V)U[G]=A;else if(!V)U[`${G}?`]=A;else U[G]=A}if($.additionalProperties){if($.additionalProperties===!0)U["[key: string]"]={type:"unknown",default:void 0};else if(typeof $.additionalProperties==="object"){let G=j($.additionalProperties,Q,{...J,propertyName:void 0});U["[key: string]"]={type:G.type,default:G.default}}}return{type:Y?{...U,__nullable:!0}:{...U},default:$.default}}return{type:"unknown",default:void 0}}finally{if(W&&J?.propertyName)W.propertyPath.pop()}}function $H(H){return typeof H==="object"&&H!==null&&"type"in H&&"in"in H&&"name"in H}function QH(H){let Q=Object.entries(H);if(Q.length===0)return!0;return Q.every(([J,X])=>{if(J.endsWith("?"))return!0;if($H(X))return X.required===!1;if(HH(X))return!1;if(typeof X==="object"&&X!==null&&!Array.isArray(X))return QH(X);return!1})}function JH(H,Q=0){let J=" ".repeat(Q),X=Q+1,W=" ".repeat(X),$=Object.entries(H).map(([Y,L])=>{if(typeof L==="string")return`${W}${B(Y)}: ${L}`;if($H(L)){let K=y(L.type,X),A=L.required===!1,F=B(Y),V=A?`${F}?`:F,Z="";if(L.description){if(Z+=`${W}/**
import{toCamel as AH,toPascal as ZH,toSnake as MH}from"@devup-api/utils";function v(H,Q="camel"){switch(Q){case"snake":return MH(H);case"camel":return AH(H);case"pascal":return ZH(H);case"maintain":return H;default:return H}}var n=["application/json","application/x-www-form-urlencoded","multipart/form-data"];function g(H,Q){if(!H.startsWith("#/"))return null;let J=H.slice(2).split("/"),X=Q;for(let W of J)if(X&&typeof X==="object"&&W in X)X=X[W];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function l(H){if(!H)return;for(let Q of n)if(H[Q])return H[Q];return}function b(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function c(H){return H.replace(/^\.\//,"")}function m(H){if(H==="default")return!0;let Q=parseInt(H,10);return Q>=400&&Q<600}function r(H){if("nullable"in H&&H.nullable===!0)return!0;if(Array.isArray(H.type)&&H.type.includes("null"))return!0;return!1}function o(H){if(Array.isArray(H.type))return H.type.find((Q)=>Q!=="null");return H.type}function C(H,Q,J){if("$ref"in H){let W=b(H.$ref);if(W){if(Q.add(W),J?.followComponentRefs&&J.document){let $=J.visited??new Set;if($.has(W))return;$.add(W);let Y=J.document.components?.schemas?.[W];if(Y)C(Y,Q,{...J,visited:$})}}return}let X=H;if(X.allOf)for(let W of X.allOf)C(W,Q,J);if(X.anyOf)for(let W of X.anyOf)C(W,Q,J);if(X.oneOf)for(let W of X.oneOf)C(W,Q,J);if(X.properties)for(let W of Object.values(X.properties))C(W,Q,J);if(X.type==="array"&&"items"in X&&X.items)C(X.items,Q,J)}function VH(H,Q){let J=H.requestBody;if(!J)return;let X;if("$ref"in J)X=g(J.$ref,Q)?.content;else X=J.content;if(!X)return;if(X["application/x-www-form-urlencoded"])return"form";if(X["multipart/form-data"])return"multipart";return}function dH(H,Q){let J=Q?.convertCase??"camel",X={};for(let[W,$]of Object.entries(H)){let Y={};for(let[L,U]of Object.entries($.paths??{})){if(!U)continue;for(let _ of["get","post","put","delete","patch"]){let G=U[_];if(!G)continue;let K=L.replace(/\{([^}]+)\}/g,(Z,z)=>{return`{${v(z,J)}}`}),A=VH(G,$),F=_.toUpperCase(),V={url:K,...A&&{bodyType:A}};if(G.operationId){let Z=v(G.operationId,J);Y[Z]={...Y[Z],[F]:V}}Y[K]={...Y[K],[F]:V}}}X[W]=Y}return X}import{toPascal as e}from"@devup-api/utils";var GH=/^devup:([a-zA-Z][a-zA-Z0-9_-]*):(\w+)$/,FH=["one","create","edit","fix"];function zH(H){let Q=H.match(GH);if(!Q)return null;let[,J,X]=Q,W=X;if(!FH.includes(W))return null;return{raw:H,name:J,mode:W}}function KH(H){let Q=[],J=/\{([^}]+)\}/g,X=J.exec(H);while(X!==null)Q.push(X[1]),X=J.exec(H);return Q}function DH(H){switch(H){case"get":return"one";case"post":return"create";case"put":return"edit";case"patch":return"fix";default:return null}}function PH(H,Q){let J;if("$ref"in H){let $=g(H.$ref,Q);if(!$)return[];J=$}else J=H;if(J.type!=="object"||!J.properties)return[];let X=new Set(J.required??[]),W=[];for(let[$,Y]of Object.entries(J.properties)){if("$ref"in Y)continue;let L=Y,U={name:$,type:L.type??"string",required:X.has($)};if(L.format)U.format=L.format;if(L.description)U.description=L.description;if(L.minimum!==void 0)U.minimum=L.minimum;if(L.maximum!==void 0)U.maximum=L.maximum;if(L.minLength!==void 0)U.minLength=L.minLength;if(L.maxLength!==void 0)U.maxLength=L.maxLength;if(L.pattern)U.pattern=L.pattern;if(L.enum)U.enum=L.enum;W.push(U)}return W}function BH(H,Q){let J=H.requestBody;if(!J)return[];let X;if("$ref"in J)return[];else X=J;let W=X.content?.["application/json"];if(!W?.schema)return[];return PH(W.schema,Q)}function kH(H){let Q=[];if(!H.paths)return Q;let J=["get","post","put","patch","delete"];for(let[X,W]of Object.entries(H.paths)){if(!W)continue;for(let $ of J){let Y=W[$];if(!Y)continue;let L=[];if(Y.tags)for(let U of Y.tags){let _=zH(U);if(_){let G=DH($);if(G&&_.mode===G)L.push(_)}}if(L.length>0)Q.push({method:$,path:X,operationId:Y.operationId,tags:L,params:KH(X),operation:Y})}}return Q}function EH(H,Q){let J={};for(let W of H)for(let $ of W.tags){if(!J[$.name])J[$.name]={name:$.name};if(!W.operationId){console.warn(`Skipping ${W.method.toUpperCase()} ${W.path} - missing operationId`);continue}let Y=["post","put","patch"].includes(W.method)?BH(W.operation,Q):void 0,L={method:W.method,operationId:W.operationId,fields:Y},U=J[$.name];switch($.mode){case"one":U.one=L;break;case"create":U.create=L;break;case"edit":U.edit=L;break;case"fix":U.fix=L;break}}let X={};for(let[W,$]of Object.entries(J))if($.one&&$.create)X[W]=$;return X}function wH(H){let Q=kH(H);return EH(Q,H)}function a(H){let Q={};for(let J of Object.values(H)){let X=wH(J);Object.assign(Q,X)}return Q}function k(H){if(H==="")return H;if(/^\[.+:\s*.+\]$/.test(H))return H;let Q=H.endsWith("?"),J=Q?H.slice(0,-1):H;if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(J)||J.includes("'")){let $=`'${J.includes("'")?J.replace(/'/g,"\\'"):J}'`;return Q?`${$}?`:$}return H}function XH(H){return H.replace(/([A-Z])/g," $1").replace(/[-_]/g," ").trim().split(" ").map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1).toLowerCase()).join(" ")}function xH(H){if(H.format==="email")return"email";if(H.format==="uri"||H.format==="url")return"url";if(H.format==="date")return"date";if(H.format==="date-time")return"datetime-local";if(H.format==="time")return"time";if(H.format==="password")return"password";if(H.type==="number"||H.type==="integer")return"number";return"text"}function RH(H){let Q=[];if(H.required)Q.push("required: true");if(H.minLength!==void 0)Q.push(`minLength: ${H.minLength}`);if(H.maxLength!==void 0)Q.push(`maxLength: ${H.maxLength}`);if(H.minimum!==void 0)Q.push(`min: ${H.minimum}`);if(H.maximum!==void 0)Q.push(`max: ${H.maximum}`);if(H.pattern)Q.push(`pattern: /${H.pattern}/`);if(H.type==="number"||H.type==="integer")Q.push("valueAsNumber: true");return Q.length>0?`{ ${Q.join(", ")} }`:""}function IH(H,Q){let J=[],X=xH(H),W=XH(H.name),$=RH(H),Y=$?`register('${H.name}', ${$})`:`register('${H.name}')`;if(H.enum&&H.enum.length>0){J.push(`${Q}<div>`),J.push(`${Q} <label htmlFor="${H.name}">${W}</label>`),J.push(`${Q} <select id="${H.name}" {...${Y}}>`),J.push(`${Q} <option value="">Select...</option>`);for(let L of H.enum)J.push(`${Q} <option value="${L}">${XH(L)}</option>`);return J.push(`${Q} </select>`),J.push(`${Q} {errors.${H.name} && <span>Invalid</span>}`),J.push(`${Q}</div>`),J}if(H.type==="boolean")return J.push(`${Q}<div>`),J.push(`${Q} <label>`),J.push(`${Q} <input type="checkbox" {...${Y}} />`),J.push(`${Q} ${W}`),J.push(`${Q} </label>`),J.push(`${Q} {errors.${H.name} && <span>Invalid</span>}`),J.push(`${Q}</div>`),J;if(J.push(`${Q}<div>`),J.push(`${Q} <label htmlFor="${H.name}">${W}</label>`),J.push(`${Q} <input`),J.push(`${Q} id="${H.name}"`),J.push(`${Q} type="${X}"`),J.push(`${Q} {...${Y}}`),H.description)J.push(`${Q} placeholder="${H.description}"`);return J.push(`${Q} />`),J.push(`${Q} {errors.${H.name} && <span>${H.required?"Required":"Invalid"}</span>}`),J.push(`${Q}</div>`),J}function qH(H,Q){let J=[],X=`${H}Fields`;if(J.push(`function ${X}() {`),J.push(" const { register, formState: { errors } } = useFormContext();"),J.push(""),J.push(" return ("),J.push(" <>"),Q.length>0)for(let W of Q){let $=IH(W," ");J.push(...$)}else J.push(" {/* No fields defined in OpenAPI schema */}");return J.push(""),J.push(' <button type="submit">Submit</button>'),J.push(" </>"),J.push(" );"),J.push("}"),J}function gH(H,Q){let J=[],X=`${e(H)}Crud`,W=`${X}Fields`,$=Q.edit??Q.fix,Y=$?.method??"put",L=$?.operationId;if(J.push(`export function ${X}({`),J.push(" apiClient,"),J.push(" params,"),J.push(" onSuccess,"),J.push(" onError,"),J.push("}) {"),J.push(" const isEdit = !!params;"),J.push(""),J.push(" return ("),J.push(" <ApiForm"),J.push(" api={apiClient}"),J.push(` method={isEdit ? '${Y}' : 'post'}`),L)J.push(` path={isEdit ? '${L}' : '${Q.create.operationId}'}`);else J.push(` path={'${Q.create.operationId}'}`);return J.push(" requestOptions={isEdit ? { params } : undefined}"),J.push(" fetchDefaultValues={isEdit ? {"),J.push(` path: '${Q.one.operationId}',`),J.push(" options: { params },"),J.push(" } : undefined}"),J.push(" onSuccess={onSuccess}"),J.push(" onError={onError}"),J.push(" >"),J.push(` <${W} />`),J.push(" </ApiForm>"),J.push(" );"),J.push("}"),J}function nH(H){let Q=a(H),J=[];J.push("// Auto-generated CRUD components from OpenAPI specs"),J.push("// Do not edit this file directly"),J.push("'use client';"),J.push(""),J.push("import { ApiForm, useFormContext } from '@devup-api/hookform';"),J.push("");for(let[X,W]of Object.entries(Q)){let $=`${e(X)}Crud`,Y=W.create.fields??[];J.push("// ============================================"),J.push(`// ${$}`),J.push("// ============================================"),J.push("");let L=qH($,Y);J.push(...L),J.push("");let U=gH(X,W);J.push(...U),J.push("")}J.push("export default {");for(let X of Object.keys(Q)){let W=`${e(X)}Crud`;J.push(` ${X}: ${W},`)}return J.push("};"),J.join(`
`)}function tH(H){let Q=a(H),J=Object.keys(Q),X=[];if(X.push("import '@devup-api/ui'"),X.push(""),J.length>0){X.push("declare module '@devup-api/ui' {"),X.push(" interface DevupCrudApiNames {");for(let W of J)X.push(` ${k(W)}: true`);X.push(" }"),X.push("}"),X.push("")}return X.push("declare module '@devup-api/ui/crud' {"),X.push(" import type { CrudComponents } from '@devup-api/ui'"),X.push(""),X.push(" const crudComponents: CrudComponents"),X.push(" export default crudComponents"),X.push("}"),X.join(`
`)}import{toPascal as LH}from"@devup-api/utils";function i(H){return{enums:new Map,propertyPath:[],schemaName:H}}function jH(H,Q){let J=[];if(H.schemaName)J.push(H.schemaName);if(H.propertyPath.length>0)J.push(...H.propertyPath);if(J.length===0)return`${Q.slice(0,3).map(($)=>String($).charAt(0).toUpperCase()+String($).slice(1)).join("")}Enum`;return J.map((W)=>{return W.replace(/[^a-zA-Z0-9]/g," ").split(" ").filter(Boolean).map(($)=>$.charAt(0).toUpperCase()+$.slice(1)).join("")}).join("")}function j(H,Q,J){let X=J?.defaultNonNullable??!1,W=J?.context;if(W&&J?.propertyName)W.propertyPath.push(J.propertyName);try{if("$ref"in H){let U=H.$ref.startsWith("#/components/schemas/")?H.$ref.replace("#/components/schemas/",""):void 0,_=g(H.$ref,Q);if(!_)return{type:"unknown",default:void 0};if(U&&J?.serverName&&J?.componentType&&J?.usedSchemaNames?.has(U)){if("enum"in _&&_.enum)return{type:U,default:void 0};return{type:{__componentRef:!0,schemaName:U,serverName:J.serverName,componentType:J.componentType},default:void 0}}let G=W&&U?{...W,schemaName:U,propertyPath:[]}:W;return j(_,Q,{...J,context:G,propertyName:void 0})}let $=H;if($.allOf){let U=$.allOf.map((_)=>j(_,Q,{...J,propertyName:void 0}));return{type:U.length>0?U.map((_)=>f(_.type)).join(" & "):"unknown",default:$.default}}if($.anyOf||$.oneOf){let U=($.anyOf||$.oneOf||[]).map((_)=>j(_,Q,{...J,propertyName:void 0}));return{type:U.length>0?`(${U.map((_)=>f(_.type)).join(" | ")})`:"unknown",default:$.default}}let Y=r($);if($.enum){if(W){let _=jH(W,$.enum);if(!W.enums.get(_))W.enums.set(_,{name:_,values:$.enum,nullable:Y});return{type:Y?`${_} | null`:_,default:$.default}}let U=$.enum.map((_)=>`"${String(_)}"`).join(" | ");return{type:Y?`${U} | null`:U,default:$.default}}let L=o($);if(L==="string"){if($.format==="binary")return{type:Y?"File | Blob | null":"File | Blob",default:$.default};return{type:Y?"string | null":"string",default:$.default}}if(L==="number"||L==="integer")return{type:Y?"number | null":"number",default:$.default};if(L==="boolean")return{type:Y?"boolean | null":"boolean",default:$.default};if(L==="array"){let U="items"in $?$.items:void 0;if(U){let _=j(U,Q,{...J,propertyName:void 0});return{type:Y?{__isArray:!0,items:_.type,__nullable:!0}:{__isArray:!0,items:_.type},default:$.default}}return{type:Y?"unknown[] | null":"unknown[]",default:$.default}}if(L==="object"||$.properties){let U={},_=$.required||[];if($.properties)for(let[G,K]of Object.entries($.properties)){let A=j(K,Q,{...J,propertyName:G}),F=!1;if("$ref"in K){let Z=g(K.$ref,Q);if(Z)F=Z.default!==void 0}else F=K.default!==void 0;let V=_.includes(G);if(X&&F&&!V)U[G]=A;else if(!V)U[`${G}?`]=A;else U[G]=A}if($.additionalProperties){if($.additionalProperties===!0)U["[key: string]"]={type:"unknown",default:void 0};else if(typeof $.additionalProperties==="object"){let G=j($.additionalProperties,Q,{...J,propertyName:void 0});U["[key: string]"]={type:G.type,default:G.default}}}return{type:Y?{...U,__nullable:!0}:{...U},default:$.default}}return{type:"unknown",default:void 0}}finally{if(W&&J?.propertyName)W.propertyPath.pop()}}function $H(H){return typeof H==="object"&&H!==null&&"type"in H&&"in"in H&&"name"in H}function QH(H){let Q=Object.entries(H);if(Q.length===0)return!0;return Q.every(([J,X])=>{if(J.endsWith("?"))return!0;if($H(X))return X.required===!1;if(HH(X))return!1;if(typeof X==="object"&&X!==null&&!Array.isArray(X))return QH(X);return!1})}function JH(H,Q=0){let J=" ".repeat(Q),X=Q+1,W=" ".repeat(X),$=Object.entries(H).map(([Y,L])=>{if(typeof L==="string")return`${W}${k(Y)}: ${L}`;if($H(L)){let K=f(L.type,X),A=L.required===!1,F=k(Y),V=A?`${F}?`:F,Z="";if(L.description){if(Z+=`${W}/**
${W} * ${L.description}`,typeof L.default<"u")Z+=`

@@ -8,22 +8,22 @@ ${W} * @default {${L.default}}`;Z=`${Z}

${W}`}else if(typeof L.default<"u")Z+=`${W}/** @default {${L.default}} */
${W}`;else Z=W;return`${Z}${V}: ${K}`}if(HH(L)){let K=y(L.type,X);return`${W}${B(Y)}: ${K}`}let _=typeof L==="object"&&L!==null&&!Array.isArray(L)&&QH(L)?"?":"",G=y(L,X);return`${W}${B(Y)}${_}: ${G}`}).join(`;
${W}`;else Z=W;return`${Z}${V}: ${K}`}if(HH(L)){let K=f(L.type,X);return`${W}${k(Y)}: ${K}`}let _=typeof L==="object"&&L!==null&&!Array.isArray(L)&&QH(L)?"?":"",G=f(L,X);return`${W}${k(Y)}${_}: ${G}`}).join(`;
`);if($.length===0)return"{}";return`{
${$};
${J}}`}function HH(H){return typeof H==="object"&&H!==null&&"type"in H&&Object.keys(H).length<=2&&(!("default"in H)||Object.keys(H).length===2)}function OH(H){return typeof H==="object"&&H!==null&&"__isArray"in H&&H.__isArray===!0}function CH(H){return typeof H==="object"&&H!==null&&"__nullable"in H&&H.__nullable===!0}function TH(H){return typeof H==="object"&&H!==null&&"__componentRef"in H&&H.__componentRef===!0}function y(H,Q=0){if(typeof H==="string")return H;if(TH(H))return`DevupObject<'${H.componentType}', '${H.serverName}'>['${H.schemaName}']`;if(OH(H)){let X=`Array<${y(H.items,Q)}>`;return H.__nullable?`${X} | null`:X}if(HH(H))return y(H.type,Q);if(CH(H)){let{__nullable:J,...X}=H;return`${JH(X,Q)} | null`}if(typeof H==="object"&&H!==null&&!Array.isArray(H))return JH(H,Q);return String(H)}function WH(H,Q,J){let X={},W={},$={},Y=[...H?.parameters||[],...Q?.parameters||[]];for(let L of Y){if("$ref"in L){let A=g(L.$ref,J);if(A&&"in"in A&&"name"in A&&typeof A.in==="string"&&typeof A.name==="string"){let F="schema"in A&&A.schema?A.schema:{},{type:V,default:Z}=j(F,J,{defaultNonNullable:!1}),z={...A,type:V,default:Z};if(A.in==="path")X[A.name]=z;else if(A.in==="query")W[A.name]=z;else if(A.in==="header")$[A.name]=z}continue}let U=L.schema||{},{type:_,default:G}=j(U,J,{defaultNonNullable:!1}),K={...L,type:_,default:G};if(L.in==="path")X[L.name]=K;else if(L.in==="query")W[L.name]=K;else if(L.in==="header")$[L.name]=K}return{pathParams:X,queryParams:W,headerParams:$}}function t(H,Q){if(!H)return;if("$ref"in H){let X=g(H.$ref,Q);if(X&&"content"in X&&X.content){let W=X.content,$=l(W);if($&&"schema"in $&&$.schema)return j($.schema,Q,{defaultNonNullable:!1}).type}return"unknown"}let J=H.content;if(J){let X=l(J);if(X&&"schema"in X&&X.schema)return j(X.schema,Q,{defaultNonNullable:!1}).type}return}function UH(H,Q,J,X,W,$,Y){if(!H)return;if("$ref"in H)return;if(!("content"in H))return;let U=H.content?.["application/json"];if(!U||!("schema"in U)||!U.schema)return;let _=Q==="response"?"Response":"Error",G=Y?.responseDefaultNonNullable??!0,K=(F)=>{let V=i(_),{type:Z}=j(F,X,{defaultNonNullable:G,context:V,serverName:W,componentType:Q,usedSchemaNames:J});for(let[z,M]of V.enums)if(!$.enums.has(z))$.enums.set(z,M);return Z};if("$ref"in U.schema){let F=b(U.schema.$ref);if(F&&X.components?.schemas?.[F]&&J.has(F))return`DevupObject<'${Q}', '${W}'>['${F}']`;return K(U.schema)}let A=U.schema;if(A.type==="array"&&A.items&&"$ref"in A.items){let F=b(A.items.$ref);if(F&&X.components?.schemas?.[F]&&J.has(F))return`Array<DevupObject<'${Q}', '${W}'>['${F}']>`;return K(U.schema)}return K(U.schema)}function SH(H,Q){let J;if("$ref"in H)J=g(H.$ref,Q)?.content;else J=H.content;if(!J)return!1;return J["multipart/form-data"]!==void 0||J["application/x-www-form-urlencoded"]!==void 0}function bH(H,Q,J){let X=i(),W={get:{},post:{},put:{},delete:{},patch:{}},$=J?.convertCase??"camel",Y={followComponentRefs:!0,document:H},L=new Set,U=new Set,_=new Set;if(H.paths)for(let F of Object.values(H.paths)){if(!F)continue;let V=["get","post","put","delete","patch"];for(let Z of V){let z=F[Z];if(!z)continue;if(z.requestBody)if("$ref"in z.requestBody){let M=b(z.requestBody.$ref);if(M)L.add(M)}else{let M=z.requestBody.content,D=l(M);if(D&&"schema"in D&&D.schema)C(D.schema,L,Y)}if(z.responses)for(let[M,D]of Object.entries(z.responses)){let R=m(M);if("$ref"in D){let w=b(D.$ref);if(w)if(R)_.add(w);else U.add(w)}else if("content"in D){let E=D.content?.["application/json"];if(E&&"schema"in E&&E.schema)if(R)C(E.schema,_,Y);else C(E.schema,U,Y)}}}}if(H.paths)for(let[F,V]of Object.entries(H.paths)){if(!V)continue;let Z=["get","post","put","delete","patch"];for(let z of Z){let M=V[z];if(!M)continue;let D={},{pathParams:R,queryParams:w}=WH(V,M,H),E={};for(let[q,k]of Object.entries(R)){let P=v(q,$);E[P]=k}let p={};for(let[q,k]of Object.entries(w)){let P=v(q,$);p[P]=k}if(Object.keys(E).length>0)D.params=E;if(Object.keys(p).length>0)D.query=p;let T;if(M.requestBody)if("$ref"in M.requestBody){let q=t(M.requestBody,H);if(q!==void 0)T=q}else{let q=M.requestBody.content,k=l(q);if(k&&"schema"in k&&k.schema)if("$ref"in k.schema){let P=b(k.schema.$ref);if(P&&H.components?.schemas?.[P]&&L.has(P))T=`DevupObject<'request', '${Q}'>['${P}']`;else{let x=t(M.requestBody,H);if(x!==void 0)T=x}}else{let P=k.schema,x=q?.["multipart/form-data"]!==void 0&&!q?.["application/json"]&&!q?.["application/x-www-form-urlencoded"],I=P.type==="object"&&(!P.properties||Object.keys(P.properties).length===0)&&!P.allOf&&!P.anyOf&&!P.oneOf;if(x&&I)T="FormData | Record<string, unknown>";else{let O=t(M.requestBody,H);if(O!==void 0)T=O}}}if(T!==void 0){if(M.requestBody){if(SH(M.requestBody,H)){let k=typeof T==="string"?T:y(T);if(!k.includes("FormData"))T=`${k} | FormData`}}D.body=T}if(M.responses){let q=M.responses["200"]||M.responses["201"]||Object.values(M.responses)[0],k=UH(q,"response",U,H,Q,X,J);if(k!==void 0)D.response=k}if(M.responses){let q=M.responses["400"]||M.responses["401"]||M.responses["403"]||M.responses["404"]||M.responses["422"]||M.responses["500"]||M.responses.default||Object.entries(M.responses).find(([P])=>m(P))?.[1],k=UH(q,"error",_,H,Q,X,J);if(k!==void 0)D.error=k}let s=F.replace(/\{([^}]+)\}/g,(q,k)=>{return`{${v(k,$)}}`});if(W[z][s]=D,M.operationId){let q=v(M.operationId,$);W[z][q]=D}}}let G={},K={},A={};if(H.components?.schemas){let F=J?.requestDefaultNonNullable??!1,V=J?.responseDefaultNonNullable??!0;for(let[Z,z]of Object.entries(H.components.schemas))if(z){let M=z;if("enum"in M&&M.enum){let D=i(Z);j(M,H,{context:D});for(let[R,w]of D.enums)if(!X.enums.has(R))X.enums.set(R,w);continue}if(L.has(Z)){let D=i(Z),{type:R}=j(z,H,{defaultNonNullable:F,context:D,serverName:Q,componentType:"request",usedSchemaNames:L});for(let[w,E]of D.enums)if(!X.enums.has(w))X.enums.set(w,E);G[Z]=R}if(U.has(Z)){let D=i(Z),{type:R}=j(z,H,{defaultNonNullable:V,context:D,serverName:Q,componentType:"response",usedSchemaNames:U});for(let[w,E]of D.enums)if(!X.enums.has(w))X.enums.set(w,E);K[Z]=R}if(_.has(Z)){let D=i(Z),{type:R}=j(z,H,{defaultNonNullable:V,context:D,serverName:Q,componentType:"error",usedSchemaNames:_});for(let[w,E]of D.enums)if(!X.enums.has(w))X.enums.set(w,E);A[Z]=R}}}return{endpoints:W,requestComponents:G,responseComponents:K,errorComponents:A,enumDefinitions:X.enums}}function LX(H,Q){let J=[],X=new Map,W={},$={},Y={},L={},U=new Map;for(let[k,P]of Object.entries(H)){let x=c(k);J.push(x),X.set(x,k);let{endpoints:I,requestComponents:O,responseComponents:S,errorComponents:N,enumDefinitions:f}=bH(P,x,Q);W[x]=I,$[x]=O,Y[x]=S,L[x]=N;for(let[u,_H]of f)if(!U.has(u))U.set(u,_H)}let G=` interface DevupApiServers {
${J.map((k)=>` ${B(k)}: never`).join(`;
${J}}`}function HH(H){return typeof H==="object"&&H!==null&&"type"in H&&Object.keys(H).length<=2&&(!("default"in H)||Object.keys(H).length===2)}function OH(H){return typeof H==="object"&&H!==null&&"__isArray"in H&&H.__isArray===!0}function CH(H){return typeof H==="object"&&H!==null&&"__nullable"in H&&H.__nullable===!0}function TH(H){return typeof H==="object"&&H!==null&&"__componentRef"in H&&H.__componentRef===!0}function f(H,Q=0){if(typeof H==="string")return H;if(TH(H))return`DevupObject<'${H.componentType}', '${H.serverName}'>['${H.schemaName}']`;if(OH(H)){let X=`Array<${f(H.items,Q)}>`;return H.__nullable?`${X} | null`:X}if(HH(H))return f(H.type,Q);if(CH(H)){let{__nullable:J,...X}=H;return`${JH(X,Q)} | null`}if(typeof H==="object"&&H!==null&&!Array.isArray(H))return JH(H,Q);return String(H)}function WH(H,Q,J){let X={},W={},$={},Y=[...H?.parameters||[],...Q?.parameters||[]];for(let L of Y){if("$ref"in L){let A=g(L.$ref,J);if(A&&"in"in A&&"name"in A&&typeof A.in==="string"&&typeof A.name==="string"){let F="schema"in A&&A.schema?A.schema:{},{type:V,default:Z}=j(F,J,{defaultNonNullable:!1}),z={...A,type:V,default:Z};if(A.in==="path")X[A.name]=z;else if(A.in==="query")W[A.name]=z;else if(A.in==="header")$[A.name]=z}continue}let U=L.schema||{},{type:_,default:G}=j(U,J,{defaultNonNullable:!1}),K={...L,type:_,default:G};if(L.in==="path")X[L.name]=K;else if(L.in==="query")W[L.name]=K;else if(L.in==="header")$[L.name]=K}return{pathParams:X,queryParams:W,headerParams:$}}function t(H,Q){if(!H)return;if("$ref"in H){let X=g(H.$ref,Q);if(X&&"content"in X&&X.content){let W=X.content,$=l(W);if($&&"schema"in $&&$.schema)return j($.schema,Q,{defaultNonNullable:!1}).type}return"unknown"}let J=H.content;if(J){let X=l(J);if(X&&"schema"in X&&X.schema)return j(X.schema,Q,{defaultNonNullable:!1}).type}return}function UH(H,Q,J,X,W,$,Y){if(!H)return;if("$ref"in H)return;if(!("content"in H))return;let U=H.content?.["application/json"];if(!U||!("schema"in U)||!U.schema)return;let _=Q==="response"?"Response":"Error",G=Y?.responseDefaultNonNullable??!0,K=(F)=>{let V=i(_),{type:Z}=j(F,X,{defaultNonNullable:G,context:V,serverName:W,componentType:Q,usedSchemaNames:J});for(let[z,M]of V.enums)if(!$.enums.has(z))$.enums.set(z,M);return Z};if("$ref"in U.schema){let F=b(U.schema.$ref);if(F&&X.components?.schemas?.[F]&&J.has(F))return`DevupObject<'${Q}', '${W}'>['${F}']`;return K(U.schema)}let A=U.schema;if(A.type==="array"&&A.items&&"$ref"in A.items){let F=b(A.items.$ref);if(F&&X.components?.schemas?.[F]&&J.has(F))return`Array<DevupObject<'${Q}', '${W}'>['${F}']>`;return K(U.schema)}return K(U.schema)}function SH(H,Q){let J;if("$ref"in H)J=g(H.$ref,Q)?.content;else J=H.content;if(!J)return!1;return J["multipart/form-data"]!==void 0||J["application/x-www-form-urlencoded"]!==void 0}function bH(H,Q,J){let X=i(),W={get:{},post:{},put:{},delete:{},patch:{}},$=J?.convertCase??"camel",Y={followComponentRefs:!0,document:H},L=new Set,U=new Set,_=new Set;if(H.paths)for(let F of Object.values(H.paths)){if(!F)continue;let V=["get","post","put","delete","patch"];for(let Z of V){let z=F[Z];if(!z)continue;if(z.requestBody)if("$ref"in z.requestBody){let M=b(z.requestBody.$ref);if(M)L.add(M)}else{let M=z.requestBody.content,P=l(M);if(P&&"schema"in P&&P.schema)C(P.schema,L,Y)}if(z.responses)for(let[M,P]of Object.entries(z.responses)){let R=m(M);if("$ref"in P){let w=b(P.$ref);if(w)if(R)_.add(w);else U.add(w)}else if("content"in P){let E=P.content?.["application/json"];if(E&&"schema"in E&&E.schema)if(R)C(E.schema,_,Y);else C(E.schema,U,Y)}}}}if(H.paths)for(let[F,V]of Object.entries(H.paths)){if(!V)continue;let Z=["get","post","put","delete","patch"];for(let z of Z){let M=V[z];if(!M)continue;let P={},{pathParams:R,queryParams:w}=WH(V,M,H),E={};for(let[q,D]of Object.entries(R)){let B=v(q,$);E[B]=D}let p={};for(let[q,D]of Object.entries(w)){let B=v(q,$);p[B]=D}if(Object.keys(E).length>0)P.params=E;if(Object.keys(p).length>0)P.query=p;let T;if(M.requestBody)if("$ref"in M.requestBody){let q=t(M.requestBody,H);if(q!==void 0)T=q}else{let q=M.requestBody.content,D=l(q);if(D&&"schema"in D&&D.schema)if("$ref"in D.schema){let B=b(D.schema.$ref);if(B&&H.components?.schemas?.[B]&&L.has(B))T=`DevupObject<'request', '${Q}'>['${B}']`;else{let x=t(M.requestBody,H);if(x!==void 0)T=x}}else{let B=D.schema,x=q?.["multipart/form-data"]!==void 0&&!q?.["application/json"]&&!q?.["application/x-www-form-urlencoded"],I=B.type==="object"&&(!B.properties||Object.keys(B.properties).length===0)&&!B.allOf&&!B.anyOf&&!B.oneOf;if(x&&I)T="FormData | Record<string, unknown>";else{let O=t(M.requestBody,H);if(O!==void 0)T=O}}}if(T!==void 0){if(M.requestBody){if(SH(M.requestBody,H)){let D=typeof T==="string"?T:f(T);if(!D.includes("FormData"))T=`${D} | FormData`}}P.body=T}if(M.responses){let q=M.responses["200"]||M.responses["201"]||Object.values(M.responses)[0],D=UH(q,"response",U,H,Q,X,J);if(D!==void 0)P.response=D}if(M.responses){let q=M.responses["400"]||M.responses["401"]||M.responses["403"]||M.responses["404"]||M.responses["422"]||M.responses["500"]||M.responses.default||Object.entries(M.responses).find(([B])=>m(B))?.[1],D=UH(q,"error",_,H,Q,X,J);if(D!==void 0)P.error=D}let s=F.replace(/\{([^}]+)\}/g,(q,D)=>{return`{${v(D,$)}}`});if(W[z][s]=P,M.operationId){let q=v(M.operationId,$);W[z][q]=P}}}let G={},K={},A={};if(H.components?.schemas){let F=J?.requestDefaultNonNullable??!1,V=J?.responseDefaultNonNullable??!0;for(let[Z,z]of Object.entries(H.components.schemas))if(z){let M=z;if("enum"in M&&M.enum){let P=i(Z);j(M,H,{context:P});for(let[R,w]of P.enums)if(!X.enums.has(R))X.enums.set(R,w);continue}if(L.has(Z)){let P=i(Z),{type:R}=j(z,H,{defaultNonNullable:F,context:P,serverName:Q,componentType:"request",usedSchemaNames:L});for(let[w,E]of P.enums)if(!X.enums.has(w))X.enums.set(w,E);G[Z]=R}if(U.has(Z)){let P=i(Z),{type:R}=j(z,H,{defaultNonNullable:V,context:P,serverName:Q,componentType:"response",usedSchemaNames:U});for(let[w,E]of P.enums)if(!X.enums.has(w))X.enums.set(w,E);K[Z]=R}if(_.has(Z)){let P=i(Z),{type:R}=j(z,H,{defaultNonNullable:V,context:P,serverName:Q,componentType:"error",usedSchemaNames:_});for(let[w,E]of P.enums)if(!X.enums.has(w))X.enums.set(w,E);A[Z]=R}}}return{endpoints:W,requestComponents:G,responseComponents:K,errorComponents:A,enumDefinitions:X.enums}}function LX(H,Q){let J=[],X=new Map,W={},$={},Y={},L={},U=new Map;for(let[D,B]of Object.entries(H)){let x=c(D);J.push(x),X.set(x,D);let{endpoints:I,requestComponents:O,responseComponents:S,errorComponents:N,enumDefinitions:y}=bH(B,x,Q);W[x]=I,$[x]=O,Y[x]=S,L[x]=N;for(let[u,_H]of y)if(!U.has(u))U.set(u,_H)}let G=` interface DevupApiServers {
${J.map((D)=>` ${k(D)}: never`).join(`;
`)}
}`,K=[],A=["get","post","put","delete","patch"];for(let k of A){let P=[];for(let x of J){let I=W[x]?.[k];if(I&&Object.keys(I).length>0){let O=Object.entries(I).map(([N,f])=>{let u=y(f,3);return` ${B(N)}: ${u}`}).join(`;
`),S=B(x);P.push(` ${S}: {
}`,K=[],A=["get","post","put","delete","patch"];for(let D of A){let B=[];for(let x of J){let I=W[x]?.[D];if(I&&Object.keys(I).length>0){let O=Object.entries(I).map(([N,y])=>{let u=f(y,3);return` ${k(N)}: ${u}`}).join(`;
`),S=k(x);B.push(` ${S}: {
${O};
}`)}}if(P.length>0){let x=`Devup${LH(k)}ApiStruct`;K.push(` interface ${x} {
${P.join(`;
}`)}}if(B.length>0){let x=`Devup${LH(D)}ApiStruct`;K.push(` interface ${x} {
${B.join(`;
`)}
}`)}}let F=[],V=[],Z=[];for(let k of J){let P=B(k),x=$[k]||{};if(Object.keys(x).length>0){let S=Object.entries(x).map(([N,f])=>{let u=y(f,3);return` ${B(N)}: ${u}`}).join(`;
`);F.push(` ${P}: {
}`)}}let F=[],V=[],Z=[];for(let D of J){let B=k(D),x=$[D]||{};if(Object.keys(x).length>0){let S=Object.entries(x).map(([N,y])=>{let u=f(y,3);return` ${k(N)}: ${u}`}).join(`;
`);F.push(` ${B}: {
${S};
}`)}let I=Y[k]||{};if(Object.keys(I).length>0){let S=Object.entries(I).map(([N,f])=>{let u=y(f,3);return` ${B(N)}: ${u}`}).join(`;
`);V.push(` ${P}: {
}`)}let I=Y[D]||{};if(Object.keys(I).length>0){let S=Object.entries(I).map(([N,y])=>{let u=f(y,3);return` ${k(N)}: ${u}`}).join(`;
`);V.push(` ${B}: {
${S};
}`)}let O=L[k]||{};if(Object.keys(O).length>0){let S=Object.entries(O).map(([N,f])=>{let u=y(f,2);return` ${B(N)}: ${u}`}).join(`;
`);Z.push(` ${P}: {
}`)}let O=L[D]||{};if(Object.keys(O).length>0){let S=Object.entries(O).map(([N,y])=>{let u=f(y,2);return` ${k(N)}: ${u}`}).join(`;
`);Z.push(` ${B}: {
${S};

@@ -36,7 +36,7 @@ }`)}}let z=F.length>0?` interface DevupRequestComponentStruct {

`)}
}`:" interface DevupResponseComponentStruct {}",D=Z.length>0?` interface DevupErrorComponentStruct {
}`:" interface DevupResponseComponentStruct {}",P=Z.length>0?` interface DevupErrorComponentStruct {
${Z.join(`;
`)}
}`:" interface DevupErrorComponentStruct {}",R=[];for(let[k,P]of U){let x=P.values.map((I)=>`"${String(I)}"`).join(" | ");R.push(` type ${k} = ${x}`)}let w=[];for(let k of J){let P=[];for(let I of A){let O=W[k]?.[I],S=O?Object.keys(O):[];if(S.length>0){let N=S.map((f)=>`'${f}'`).join(" | ");P.push(` ${I}: ${N}`)}else P.push(` ${I}: never`)}let x=B(k);w.push(` ${x}: {
${P.join(`;
}`:" interface DevupErrorComponentStruct {}",R=[];for(let[D,B]of U){let x=B.values.map((I)=>`"${String(I)}"`).join(" | ");R.push(` type ${D} = ${x}`)}let w=[];for(let D of J){let B=[];for(let I of A){let O=W[D]?.[I],S=O?Object.keys(O):[];if(S.length>0){let N=S.map((y)=>`'${y}'`).join(" | ");B.push(` ${I}: ${N}`)}else B.push(` ${I}: never`)}let x=k(D);w.push(` ${x}: {
${B.join(`;
`)};

@@ -46,4 +46,4 @@ }`)}let E=w.length>0?` interface DevupPrecomputedMethodKeys {

`)}
}`:"",p=[];for(let k of J){let P=[];for(let I of A){let O=W[k]?.[I];if(O&&Object.keys(O).length>0){let S=`Devup${LH(I)}ApiStruct`,N=B(k);P.push(` ${I}: ${S}[${N}]`)}else P.push(` ${I}: Record<string, never>`)}let x=B(k);p.push(` ${x}: {
${P.join(`;
}`:"",p=[];for(let D of J){let B=[];for(let I of A){let O=W[D]?.[I];if(O&&Object.keys(O).length>0){let S=`Devup${LH(I)}ApiStruct`,N=k(D);B.push(` ${I}: ${S}[${N}]`)}else B.push(` ${I}: Record<string, never>`)}let x=k(D);p.push(` ${x}: {
${B.join(`;
`)};

@@ -53,3 +53,3 @@ }`)}let T=p.length>0?` interface DevupPrecomputedScopes {

`)}
}`:"",s=[G,...K,...E?[E]:[],...T?[T]:[],z,M,D].join(`
}`:"",s=[G,...K,...E?[E]:[],...T?[T]:[],z,M,P].join(`

@@ -64,11 +64,11 @@ `);return`import "@devup-api/fetch";

`:""}${s}
}`}function h(H,Q,J,X){let W=X?.defaultNonNullable??!1;if("$ref"in H){let U=b(H.$ref);if(U&&J.has(U))return`z.lazy(() => ${J.get(U)})`;let _=g(H.$ref,Q);if(_)return h(_,Q,J,X);return"z.unknown()"}let $=H,Y=(U)=>{if(r($))return`${U}.nullable()`;return U},L=o($);if($.allOf){let U=$.allOf.map((_)=>h(_,Q,J,X));if(U.length===0)return"z.unknown()";if(U.length===1)return Y(U[0]);return Y(`z.intersection(${U.join(", ")})`)}if($.oneOf||$.anyOf){let U=($.oneOf||$.anyOf||[]).map((_)=>h(_,Q,J,X));if(U.length===0)return"z.unknown()";if(U.length===1)return Y(U[0]);return Y(`z.union([${U.join(", ")}])`)}if($.enum){let U=$.enum.map((_)=>JSON.stringify(_));if(U.length===1)return Y(`z.literal(${U[0]})`);return Y(`z.enum([${U.join(", ")}])`)}if(L==="string"){if($.format==="binary")return Y("z.instanceof(File)");if($.format==="email"){let _="z.email()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;return Y(_)}if($.format==="uri"||$.format==="url"){let _="z.url()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;return Y(_)}if($.format==="uuid")return Y("z.uuid()");if($.format==="date-time")return Y("z.iso.datetime()");let U="z.string()";if($.minLength!==void 0)U+=`.min(${$.minLength})`;if($.maxLength!==void 0)U+=`.max(${$.maxLength})`;if($.pattern)U+=`.regex(/${$.pattern}/)`;return Y(U)}if(L==="number"||L==="integer"){let U=L==="integer"?"z.int()":"z.number()";if($.minimum!==void 0)U+=`.min(${$.minimum})`;if($.maximum!==void 0)U+=`.max(${$.maximum})`;if($.exclusiveMinimum!==void 0)U+=`.gt(${$.exclusiveMinimum})`;if($.exclusiveMaximum!==void 0)U+=`.lt(${$.exclusiveMaximum})`;return Y(U)}if(L==="boolean")return Y("z.boolean()");if(L==="array"){if("items"in $&&$.items){let _=`z.array(${h($.items,Q,J,X)})`;if($.minItems!==void 0)_+=`.min(${$.minItems})`;if($.maxItems!==void 0)_+=`.max(${$.maxItems})`;return Y(_)}return Y("z.array(z.unknown())")}if(L==="object"||$.properties){let U=new Set($.required||[]),_=[];if($.properties)for(let[K,A]of Object.entries($.properties)){let F=h(A,Q,J,X),V=U.has(K),Z=!1;if("$ref"in A){let M=g(A.$ref,Q);if(M)Z=M.default!==void 0}else Z=A.default!==void 0;let z=F;if(!V&&!(W&&Z))z+=".optional()";_.push(`${B(K)}: ${z}`)}let G=_.length>0?`z.object({
}`}function h(H,Q,J,X){let W=X?.defaultNonNullable??!1;if("$ref"in H){let U=b(H.$ref);if(U&&J.has(U))return`z.lazy(() => ${J.get(U)})`;let _=g(H.$ref,Q);if(_)return h(_,Q,J,X);return"z.unknown()"}let $=H,Y=(U)=>{if(r($))return`${U}.nullable()`;return U},L=o($);if($.allOf){let U=$.allOf.map((_)=>h(_,Q,J,X));if(U.length===0)return"z.unknown()";if(U.length===1)return Y(U[0]);return Y(`z.intersection(${U.join(", ")})`)}if($.oneOf||$.anyOf){let U=($.oneOf||$.anyOf||[]).map((_)=>h(_,Q,J,X));if(U.length===0)return"z.unknown()";if(U.length===1)return Y(U[0]);return Y(`z.union([${U.join(", ")}])`)}if($.enum){let U=$.enum.map((_)=>JSON.stringify(_));if(U.length===1)return Y(`z.literal(${U[0]})`);return Y(`z.enum([${U.join(", ")}])`)}if(L==="string"){if($.format==="binary")return Y("z.instanceof(File)");if($.format==="email"){let _="z.email()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;return Y(_)}if($.format==="uri"||$.format==="url"){let _="z.url()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;return Y(_)}if($.format==="uuid")return Y("z.uuid()");if($.format==="date-time")return Y("z.iso.datetime()");let U="z.string()";if($.minLength!==void 0)U+=`.min(${$.minLength})`;if($.maxLength!==void 0)U+=`.max(${$.maxLength})`;if($.pattern)U+=`.regex(/${$.pattern}/)`;return Y(U)}if(L==="number"||L==="integer"){let U=L==="integer"?"z.int()":"z.number()";if($.minimum!==void 0)U+=`.min(${$.minimum})`;if($.maximum!==void 0)U+=`.max(${$.maximum})`;if($.exclusiveMinimum!==void 0)U+=`.gt(${$.exclusiveMinimum})`;if($.exclusiveMaximum!==void 0)U+=`.lt(${$.exclusiveMaximum})`;return Y(U)}if(L==="boolean")return Y("z.boolean()");if(L==="array"){if("items"in $&&$.items){let _=`z.array(${h($.items,Q,J,X)})`;if($.minItems!==void 0)_+=`.min(${$.minItems})`;if($.maxItems!==void 0)_+=`.max(${$.maxItems})`;return Y(_)}return Y("z.array(z.unknown())")}if(L==="object"||$.properties){let U=new Set($.required||[]),_=[];if($.properties)for(let[K,A]of Object.entries($.properties)){let F=h(A,Q,J,X),V=U.has(K),Z=!1;if("$ref"in A){let M=g(A.$ref,Q);if(M)Z=M.default!==void 0}else Z=A.default!==void 0;let z=F;if(!V&&!(W&&Z))z+=".optional()";_.push(`${k(K)}: ${z}`)}let G=_.length>0?`z.object({
${_.join(`,
`)}
})`:"z.object({})";if($.additionalProperties===!0)G+=".passthrough()";else if(typeof $.additionalProperties==="object"&&$.additionalProperties!==null)G+=".passthrough()";return Y(G)}return"z.unknown()"}function d(H,Q,J){let X=J?.defaultNonNullable??!1;if("$ref"in H){if(b(H.$ref))return"z.ZodLazy<z.ZodTypeAny>";let U=g(H.$ref,Q);if(U)return d(U,Q,J);return"z.ZodUnknown"}let W=H,$=(L)=>{if(r(W))return`z.ZodNullable<${L}>`;return L},Y=o(W);if(W.allOf){let L=W.allOf.map((_)=>d(_,Q,J));if(L.length===0)return"z.ZodUnknown";if(L.length===1)return $(L[0]);let U=L[0];for(let _=1;_<L.length;_++)U=`z.ZodIntersection<${U}, ${L[_]}>`;return $(U)}if(W.oneOf||W.anyOf){let L=(W.oneOf||W.anyOf||[]).map((U)=>d(U,Q,J));if(L.length===0)return"z.ZodUnknown";if(L.length===1)return $(L[0]);return $(`z.ZodUnion<[${L.join(", ")}]>`)}if(W.enum){let L=W.enum.map((U)=>JSON.stringify(U));if(L.length===1)return $(`z.ZodLiteral<${L[0]}>`);return $(`z.ZodEnum<[${L.join(", ")}]>`)}if(Y==="string"){if(W.format==="binary")return $("z.ZodType<File>");return $("z.ZodString")}if(Y==="number"||Y==="integer")return $("z.ZodNumber");if(Y==="boolean")return $("z.ZodBoolean");if(Y==="array"){if("items"in W&&W.items){let L=d(W.items,Q,J);return $(`z.ZodArray<${L}>`)}return $("z.ZodArray<z.ZodUnknown>")}if(Y==="object"||W.properties){let L=new Set(W.required||[]),U=[];if(W.properties)for(let[G,K]of Object.entries(W.properties)){let A=d(K,Q,J),F=L.has(G),V=!1;if("$ref"in K){let z=g(K.$ref,Q);if(z)V=z.default!==void 0}else V=K.default!==void 0;let Z=A;if(!F&&!(X&&V))Z=`z.ZodOptional<${A}>`;U.push(`${B(G)}: ${Z}`)}let _=U.length>0?`z.ZodObject<{ ${U.join("; ")} }>`:"z.ZodObject<Record<string, never>>";return $(_)}return"z.ZodUnknown"}function NH(H,Q){let J=new Set,X=new Set,W=new Set,$={get:{},post:{},put:{},delete:{},patch:{}},Y=Q?.convertCase??"camel",L=(U)=>{if("$ref"in U)return b(U.$ref);let _=U.content;for(let G of n){let K=_?.[G];if(K?.schema&&"$ref"in K.schema)return b(K.schema.$ref)}return null};if(H.paths)for(let[U,_]of Object.entries(H.paths)){if(!_)continue;let G=["get","post","put","delete","patch"];for(let K of G){let A=_[K];if(!A)continue;let F=U.replace(/\{([^}]+)\}/g,(M,D)=>{return`{${v(D,Y)}}`}),V=A.operationId?v(A.operationId,Y):null,Z=null;if(A.requestBody)if(Z=L(A.requestBody),"$ref"in A.requestBody){let M=b(A.requestBody.$ref);if(M)J.add(M)}else{let M=A.requestBody.content;for(let D of n){let R=M?.[D];if(R?.schema){C(R.schema,J);break}}}let z={schemaName:Z,operationId:V};if($[K][F]=z,V)$[K][V]=z;if(A.responses)for(let[M,D]of Object.entries(A.responses)){let R=m(M);if("$ref"in D){let w=b(D.$ref);if(w)if(R)W.add(w);else X.add(w)}else if("content"in D){let E=D.content?.["application/json"];if(E?.schema)if(R)C(E.schema,W);else C(E.schema,X)}}}}return{requestSchemaNames:J,responseSchemaNames:X,errorSchemaNames:W,pathMappings:$}}function YH(H,Q,J){let{requestSchemaNames:X,responseSchemaNames:W,errorSchemaNames:$,pathMappings:Y}=NH(H,J),L={},U={},_={},G=new Map;if(H.components?.schemas)for(let V of Object.keys(H.components.schemas))G.set(V,`_${V}`);if(H.components?.schemas)for(let[V,Z]of Object.entries(H.components.schemas)){if(!Z)continue;let z=J?.requestDefaultNonNullable??!1,M=J?.responseDefaultNonNullable??!0,D=X.has(V),R=W.has(V),w=$.has(V),E=Z;if(D)L[V]={code:h(E,H,G,{defaultNonNullable:z}),type:d(E,H,{defaultNonNullable:z})};if(R)U[V]={code:h(E,H,G,{defaultNonNullable:M}),type:d(E,H,{defaultNonNullable:M})};if(w)_[V]={code:h(E,H,G,{defaultNonNullable:M}),type:d(E,H,{defaultNonNullable:M})}}let K=new Set([...X,...W,...$]),A=new Set;for(let V of K){let Z=H.components?.schemas?.[V];if(Z)C(Z,A,{followComponentRefs:!0,document:H})}let F={};for(let V of A){let Z=H.components?.schemas?.[V];if(!Z)continue;let z=Z;F[V]={code:h(z,H,G),type:d(z,H)}}return{requestSchemas:L,responseSchemas:U,errorSchemas:_,dependencySchemas:F,pathMappings:Y}}function ZX(H,Q){let J={};for(let[$,Y]of Object.entries(H)){let L=c($);J[L]=YH(Y,L,Q)}let X=['import { z } from "zod";',""];for(let[$,Y]of Object.entries(J)){let L=$.replace(/[^a-zA-Z0-9]/g,"_");if(Object.keys(Y.dependencySchemas).length>0){X.push(`// Shared dependency schemas for ${$}`);for(let[U,_]of Object.entries(Y.dependencySchemas))X.push(`const _${U} = ${_.code};`);X.push("")}if(Object.keys(Y.requestSchemas).length>0){X.push(`// Request schemas for ${$}`);for(let[U,_]of Object.entries(Y.requestSchemas))X.push(`const ${L}_request_${U} = ${_.code};`);X.push("")}if(Object.keys(Y.responseSchemas).length>0){X.push(`// Response schemas for ${$}`);for(let[U,_]of Object.entries(Y.responseSchemas))X.push(`const ${L}_response_${U} = ${_.code};`);X.push("")}if(Object.keys(Y.errorSchemas).length>0){X.push(`// Error schemas for ${$}`);for(let[U,_]of Object.entries(Y.errorSchemas))X.push(`const ${L}_error_${U} = ${_.code};`);X.push("")}}X.push("// Exported schemas");for(let[$,Y]of Object.entries(J)){let L=$.replace(/[^a-zA-Z0-9]/g,"_"),U=Object.keys(Y.requestSchemas).map((A)=>` ${B(A)}: ${L}_request_${A}`).join(`,
`);X.push(`export const ${L}_requestSchemas = {`),X.push(U||""),X.push("};"),X.push("");let _=Object.keys(Y.responseSchemas).map((A)=>` ${B(A)}: ${L}_response_${A}`).join(`,
`);X.push(`export const ${L}_responseSchemas = {`),X.push(_||""),X.push("};"),X.push("");let G=Object.keys(Y.errorSchemas).map((A)=>` ${B(A)}: ${L}_error_${A}`).join(`,
`);X.push(`export const ${L}_errorSchemas = {`),X.push(G||""),X.push("};"),X.push("");let K=["post","put","patch","delete"];for(let A of K){let F=[],V=Y.pathMappings[A];for(let[Z,z]of Object.entries(V))if(z.schemaName&&Y.requestSchemas[z.schemaName])F.push(` ${B(Z)}: ${L}_request_${z.schemaName}`);if(F.length>0)X.push(`export const ${L}_${A}PathSchemas = {`),X.push(F.join(`,
`)),X.push("};"),X.push("");else X.push(`export const ${L}_${A}PathSchemas = {};`),X.push("")}}let W=Object.keys(J);if(W.length===1){let $=W[0].replace(/[^a-zA-Z0-9]/g,"_");X.push("export const schemas = {"),X.push(` request: ${$}_requestSchemas,`),X.push(` response: ${$}_responseSchemas,`),X.push(` error: ${$}_errorSchemas,`),X.push("};"),X.push(""),X.push(`export const requestSchemas = ${$}_requestSchemas;`),X.push(`export const responseSchemas = ${$}_responseSchemas;`),X.push(`export const errorSchemas = ${$}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings"),X.push(`export const postPathSchemas = ${$}_postPathSchemas;`),X.push(`export const putPathSchemas = ${$}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${$}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${$}_deletePathSchemas;`),X.push(""),X.push("export const pathSchemas = {"),X.push(" post: postPathSchemas,"),X.push(" put: putPathSchemas,"),X.push(" patch: patchPathSchemas,"),X.push(" delete: deletePathSchemas,"),X.push("};")}else{X.push("export const schemas = {");for(let $ of W){let Y=$.replace(/[^a-zA-Z0-9]/g,"_");X.push(` ${B($)}: {`),X.push(` request: ${Y}_requestSchemas,`),X.push(` response: ${Y}_responseSchemas,`),X.push(` error: ${Y}_errorSchemas,`),X.push(" },")}if(X.push("};"),W.length>0){let Y=W[0].replace(/[^a-zA-Z0-9]/g,"_");X.push(""),X.push("// Default server exports (first server)"),X.push(`export const requestSchemas = ${Y}_requestSchemas;`),X.push(`export const responseSchemas = ${Y}_responseSchemas;`),X.push(`export const errorSchemas = ${Y}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings (first server)"),X.push(`export const postPathSchemas = ${Y}_postPathSchemas;`),X.push(`export const putPathSchemas = ${Y}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${Y}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${Y}_deletePathSchemas;`),X.push(""),X.push("export const pathSchemas = {"),X.push(" post: postPathSchemas,"),X.push(" put: putPathSchemas,"),X.push(" patch: patchPathSchemas,"),X.push(" delete: deletePathSchemas,"),X.push("};")}}return X.join(`
`)}function MX(H,Q){let J={};for(let[W,$]of Object.entries(H)){let Y=c(W);J[Y]=YH($,Y,Q)}let X=['import "@devup-api/zod";','import type { z } from "zod";',"",'declare module "@devup-api/zod" {'];for(let[W,$]of Object.entries(J)){if(Object.keys($.requestSchemas).length>0){X.push(" interface DevupZodRequestSchemas {"),X.push(` ${B(W)}: {`);for(let[Y,L]of Object.entries($.requestSchemas))X.push(` ${B(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.responseSchemas).length>0){X.push(" interface DevupZodResponseSchemas {"),X.push(` ${B(W)}: {`);for(let[Y,L]of Object.entries($.responseSchemas))X.push(` ${B(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.errorSchemas).length>0){X.push(" interface DevupZodErrorSchemas {"),X.push(` ${B(W)}: {`);for(let[Y,L]of Object.entries($.errorSchemas))X.push(` ${B(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}}return X.push("}"),X.join(`
`)}export{g as resolveRef,zH as parseDevupTag,BH as parseDevupOperations,a as parseCrudConfigsFromMultiple,wH as parseCrudConfigs,c as normalizeServerName,r as isNullableSchema,m as isErrorStatusCode,l as getRequestBodyContent,o as getPrimaryType,MX as generateZodTypeDeclarations,ZX as generateZodSchemas,LX as generateInterface,tH as generateCrudConfigTypes,nH as generateCrudConfigCode,b as extractSchemaNameFromRef,KH as extractPathParams,dH as createUrlMap,C as collectSchemaNames,EH as buildCrudConfigs,n as CONTENT_TYPE_PRIORITY};
})`:"z.object({})";if($.additionalProperties===!0)G+=".passthrough()";else if(typeof $.additionalProperties==="object"&&$.additionalProperties!==null)G+=".passthrough()";return Y(G)}return"z.unknown()"}function d(H,Q,J){let X=J?.defaultNonNullable??!1;if("$ref"in H){if(b(H.$ref))return"z.ZodLazy<z.ZodTypeAny>";let U=g(H.$ref,Q);if(U)return d(U,Q,J);return"z.ZodUnknown"}let W=H,$=(L)=>{if(r(W))return`z.ZodNullable<${L}>`;return L},Y=o(W);if(W.allOf){let L=W.allOf.map((_)=>d(_,Q,J));if(L.length===0)return"z.ZodUnknown";if(L.length===1)return $(L[0]);let U=L[0];for(let _=1;_<L.length;_++)U=`z.ZodIntersection<${U}, ${L[_]}>`;return $(U)}if(W.oneOf||W.anyOf){let L=(W.oneOf||W.anyOf||[]).map((U)=>d(U,Q,J));if(L.length===0)return"z.ZodUnknown";if(L.length===1)return $(L[0]);return $(`z.ZodUnion<[${L.join(", ")}]>`)}if(W.enum){let L=W.enum.map((U)=>JSON.stringify(U));if(L.length===1)return $(`z.ZodLiteral<${L[0]}>`);return $(`z.ZodEnum<[${L.join(", ")}]>`)}if(Y==="string"){if(W.format==="binary")return $("z.ZodType<File>");return $("z.ZodString")}if(Y==="number"||Y==="integer")return $("z.ZodNumber");if(Y==="boolean")return $("z.ZodBoolean");if(Y==="array"){if("items"in W&&W.items){let L=d(W.items,Q,J);return $(`z.ZodArray<${L}>`)}return $("z.ZodArray<z.ZodUnknown>")}if(Y==="object"||W.properties){let L=new Set(W.required||[]),U=[];if(W.properties)for(let[G,K]of Object.entries(W.properties)){let A=d(K,Q,J),F=L.has(G),V=!1;if("$ref"in K){let z=g(K.$ref,Q);if(z)V=z.default!==void 0}else V=K.default!==void 0;let Z=A;if(!F&&!(X&&V))Z=`z.ZodOptional<${A}>`;U.push(`${k(G)}: ${Z}`)}let _=U.length>0?`z.ZodObject<{ ${U.join("; ")} }>`:"z.ZodObject<Record<string, never>>";return $(_)}return"z.ZodUnknown"}function NH(H,Q){let J=new Set,X=new Set,W=new Set,$={get:{},post:{},put:{},delete:{},patch:{}},Y=Q?.convertCase??"camel",L=(U)=>{if("$ref"in U)return b(U.$ref);let _=U.content;for(let G of n){let K=_?.[G];if(K?.schema&&"$ref"in K.schema)return b(K.schema.$ref)}return null};if(H.paths)for(let[U,_]of Object.entries(H.paths)){if(!_)continue;let G=["get","post","put","delete","patch"];for(let K of G){let A=_[K];if(!A)continue;let F=U.replace(/\{([^}]+)\}/g,(M,P)=>{return`{${v(P,Y)}}`}),V=A.operationId?v(A.operationId,Y):null,Z=null;if(A.requestBody)if(Z=L(A.requestBody),"$ref"in A.requestBody){let M=b(A.requestBody.$ref);if(M)J.add(M)}else{let M=A.requestBody.content;for(let P of n){let R=M?.[P];if(R?.schema){C(R.schema,J);break}}}let z={schemaName:Z,operationId:V};if($[K][F]=z,V)$[K][V]=z;if(A.responses)for(let[M,P]of Object.entries(A.responses)){let R=m(M);if("$ref"in P){let w=b(P.$ref);if(w)if(R)W.add(w);else X.add(w)}else if("content"in P){let E=P.content?.["application/json"];if(E?.schema)if(R)C(E.schema,W);else C(E.schema,X)}}}}return{requestSchemaNames:J,responseSchemaNames:X,errorSchemaNames:W,pathMappings:$}}function YH(H,Q,J){let{requestSchemaNames:X,responseSchemaNames:W,errorSchemaNames:$,pathMappings:Y}=NH(H,J),L={},U={},_={},G=new Map;if(H.components?.schemas)for(let V of Object.keys(H.components.schemas))G.set(V,`_${V}`);if(H.components?.schemas)for(let[V,Z]of Object.entries(H.components.schemas)){if(!Z)continue;let z=J?.requestDefaultNonNullable??!1,M=J?.responseDefaultNonNullable??!0,P=X.has(V),R=W.has(V),w=$.has(V),E=Z;if(P)L[V]={code:h(E,H,G,{defaultNonNullable:z}),type:d(E,H,{defaultNonNullable:z})};if(R)U[V]={code:h(E,H,G,{defaultNonNullable:M}),type:d(E,H,{defaultNonNullable:M})};if(w)_[V]={code:h(E,H,G,{defaultNonNullable:M}),type:d(E,H,{defaultNonNullable:M})}}let K=new Set([...X,...W,...$]),A=new Set;for(let V of K){let Z=H.components?.schemas?.[V];if(Z)C(Z,A,{followComponentRefs:!0,document:H})}let F={};for(let V of A){let Z=H.components?.schemas?.[V];if(!Z)continue;let z=Z;F[V]={code:h(z,H,G),type:d(z,H)}}return{requestSchemas:L,responseSchemas:U,errorSchemas:_,dependencySchemas:F,pathMappings:Y}}function ZX(H,Q){let J={};for(let[$,Y]of Object.entries(H)){let L=c($);J[L]=YH(Y,L,Q)}let X=['import { z } from "zod";',""];for(let[$,Y]of Object.entries(J)){let L=$.replace(/[^a-zA-Z0-9]/g,"_");if(Object.keys(Y.dependencySchemas).length>0){X.push(`// Shared dependency schemas for ${$}`);for(let[U,_]of Object.entries(Y.dependencySchemas))X.push(`const _${U} = ${_.code};`);X.push("")}if(Object.keys(Y.requestSchemas).length>0){X.push(`// Request schemas for ${$}`);for(let[U,_]of Object.entries(Y.requestSchemas))X.push(`const ${L}_request_${U} = ${_.code};`);X.push("")}if(Object.keys(Y.responseSchemas).length>0){X.push(`// Response schemas for ${$}`);for(let[U,_]of Object.entries(Y.responseSchemas))X.push(`const ${L}_response_${U} = ${_.code};`);X.push("")}if(Object.keys(Y.errorSchemas).length>0){X.push(`// Error schemas for ${$}`);for(let[U,_]of Object.entries(Y.errorSchemas))X.push(`const ${L}_error_${U} = ${_.code};`);X.push("")}}X.push("// Exported schemas");for(let[$,Y]of Object.entries(J)){let L=$.replace(/[^a-zA-Z0-9]/g,"_"),U=Object.keys(Y.requestSchemas).map((A)=>` ${k(A)}: ${L}_request_${A}`).join(`,
`);X.push(`export const ${L}_requestSchemas = {`),X.push(U||""),X.push("};"),X.push("");let _=Object.keys(Y.responseSchemas).map((A)=>` ${k(A)}: ${L}_response_${A}`).join(`,
`);X.push(`export const ${L}_responseSchemas = {`),X.push(_||""),X.push("};"),X.push("");let G=Object.keys(Y.errorSchemas).map((A)=>` ${k(A)}: ${L}_error_${A}`).join(`,
`);X.push(`export const ${L}_errorSchemas = {`),X.push(G||""),X.push("};"),X.push("");let K=["post","put","patch","delete"];for(let A of K){let F=[],V=Y.pathMappings[A];for(let[Z,z]of Object.entries(V))if(z.schemaName&&Y.requestSchemas[z.schemaName])F.push(` ${k(Z)}: ${L}_request_${z.schemaName}`);if(F.length>0)X.push(`export const ${L}_${A}PathSchemas = {`),X.push(F.join(`,
`)),X.push("};"),X.push("");else X.push(`export const ${L}_${A}PathSchemas = {};`),X.push("")}}let W=Object.keys(J);if(W.length===1){let $=W[0].replace(/[^a-zA-Z0-9]/g,"_");X.push("export const schemas = {"),X.push(` request: ${$}_requestSchemas,`),X.push(` response: ${$}_responseSchemas,`),X.push(` error: ${$}_errorSchemas,`),X.push("};"),X.push(""),X.push(`export const requestSchemas = ${$}_requestSchemas;`),X.push(`export const responseSchemas = ${$}_responseSchemas;`),X.push(`export const errorSchemas = ${$}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings"),X.push(`export const postPathSchemas = ${$}_postPathSchemas;`),X.push(`export const putPathSchemas = ${$}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${$}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${$}_deletePathSchemas;`),X.push(""),X.push("export const pathSchemas = {"),X.push(" post: postPathSchemas,"),X.push(" put: putPathSchemas,"),X.push(" patch: patchPathSchemas,"),X.push(" delete: deletePathSchemas,"),X.push("};")}else{X.push("export const schemas = {");for(let $ of W){let Y=$.replace(/[^a-zA-Z0-9]/g,"_");X.push(` ${k($)}: {`),X.push(` request: ${Y}_requestSchemas,`),X.push(` response: ${Y}_responseSchemas,`),X.push(` error: ${Y}_errorSchemas,`),X.push(" },")}if(X.push("};"),W.length>0){let Y=W[0].replace(/[^a-zA-Z0-9]/g,"_");X.push(""),X.push("// Default server exports (first server)"),X.push(`export const requestSchemas = ${Y}_requestSchemas;`),X.push(`export const responseSchemas = ${Y}_responseSchemas;`),X.push(`export const errorSchemas = ${Y}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings (first server)"),X.push(`export const postPathSchemas = ${Y}_postPathSchemas;`),X.push(`export const putPathSchemas = ${Y}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${Y}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${Y}_deletePathSchemas;`),X.push(""),X.push("export const pathSchemas = {"),X.push(" post: postPathSchemas,"),X.push(" put: putPathSchemas,"),X.push(" patch: patchPathSchemas,"),X.push(" delete: deletePathSchemas,"),X.push("};")}}return X.join(`
`)}function MX(H,Q){let J={};for(let[W,$]of Object.entries(H)){let Y=c(W);J[Y]=YH($,Y,Q)}let X=['import "@devup-api/zod";','import type { z } from "zod";',"",'declare module "@devup-api/zod" {'];for(let[W,$]of Object.entries(J)){if(Object.keys($.requestSchemas).length>0){X.push(" interface DevupZodRequestSchemas {"),X.push(` ${k(W)}: {`);for(let[Y,L]of Object.entries($.requestSchemas))X.push(` ${k(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.responseSchemas).length>0){X.push(" interface DevupZodResponseSchemas {"),X.push(` ${k(W)}: {`);for(let[Y,L]of Object.entries($.responseSchemas))X.push(` ${k(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.errorSchemas).length>0){X.push(" interface DevupZodErrorSchemas {"),X.push(` ${k(W)}: {`);for(let[Y,L]of Object.entries($.errorSchemas))X.push(` ${k(Y)}: ${L.type};`);X.push(" };"),X.push(" }"),X.push("")}}return X.push("}"),X.join(`
`)}export{g as resolveRef,zH as parseDevupTag,kH as parseDevupOperations,a as parseCrudConfigsFromMultiple,wH as parseCrudConfigs,c as normalizeServerName,r as isNullableSchema,m as isErrorStatusCode,l as getRequestBodyContent,o as getPrimaryType,MX as generateZodTypeDeclarations,ZX as generateZodSchemas,LX as generateInterface,tH as generateCrudConfigTypes,nH as generateCrudConfigCode,b as extractSchemaNameFromRef,KH as extractPathParams,dH as createUrlMap,C as collectSchemaNames,EH as buildCrudConfigs,n as CONTENT_TYPE_PRIORITY};

@@ -1,1 +0,1 @@

{"version":3,"file":"wrap-interface-key-guard.d.ts","sourceRoot":"","sources":["../src/wrap-interface-key-guard.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAwBzD"}
{"version":3,"file":"wrap-interface-key-guard.d.ts","sourceRoot":"","sources":["../src/wrap-interface-key-guard.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA6BzD"}
{
"name": "@devup-api/generator",
"version": "0.1.22",
"version": "0.1.23",
"license": "Apache-2.0",

@@ -23,3 +23,3 @@ "type": "module",

"dependencies": {
"@devup-api/core": "^0.1.16",
"@devup-api/core": "^0.1.17",
"@devup-api/utils": "^0.1.9"

@@ -26,0 +26,0 @@ },