@devup-api/generator 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"generate-crud-config.d.ts","sourceRoot":"","sources":["../src/generate-crud-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAsNhD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC5C,MAAM,CA+CR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC5C,MAAM,CA8BR"}
1
+ {"version":3,"file":"generate-crud-config.d.ts","sourceRoot":"","sources":["../src/generate-crud-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAuNhD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC5C,MAAM,CA+CR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC5C,MAAM,CA8BR"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schema.d.ts","sourceRoot":"","sources":["../src/generate-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AA2D/D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,eAAe,EAC9D,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,OAAO,CAAC,EAAE;IACR,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,GACA;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAkKtC;AAkKD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CA8B1E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,CAAC,cAAc,GAAG,SAAS,EAChD,SAAS,EAAE,WAAW,CAAC,eAAe,GAAG,SAAS,EAClD,QAAQ,EAAE,WAAW,CAAC,QAAQ,GAC7B;IACD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC/C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAChD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;CAClD,CAqEA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EACP,WAAW,CAAC,iBAAiB,GAC7B,WAAW,CAAC,eAAe,GAC3B,SAAS,EACb,QAAQ,EAAE,WAAW,CAAC,QAAQ,GAC7B,OAAO,CA+BT"}
1
+ {"version":3,"file":"generate-schema.d.ts","sourceRoot":"","sources":["../src/generate-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AA4D/D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,eAAe,EAC9D,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,OAAO,CAAC,EAAE;IACR,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,GACA;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAkKtC;AAmKD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CA8B1E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,CAAC,cAAc,GAAG,SAAS,EAChD,SAAS,EAAE,WAAW,CAAC,eAAe,GAAG,SAAS,EAClD,QAAQ,EAAE,WAAW,CAAC,QAAQ,GAC7B;IACD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC/C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAChD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;CAClD,CAqEA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EACP,WAAW,CAAC,iBAAiB,GAC7B,WAAW,CAAC,eAAe,GAC3B,SAAS,EACb,QAAQ,EAAE,WAAW,CAAC,QAAQ,GAC7B,OAAO,CA+BT"}
package/dist/index.cjs CHANGED
@@ -1,54 +1,54 @@
1
- var{defineProperty:o,getOwnPropertyNames:AH,getOwnPropertyDescriptor:ZH}=Object,MH=Object.prototype.hasOwnProperty;var n=new WeakMap,GH=(H)=>{var J=n.get(H),Y;if(J)return J;if(J=o({},"__esModule",{value:!0}),H&&typeof H==="object"||typeof H==="function")AH(H).map((X)=>!MH.call(J,X)&&o(J,X,{get:()=>H[X],enumerable:!(Y=ZH(H,X))||Y.enumerable}));return n.set(H,J),J};var KH=(H,J)=>{for(var Y in J)o(H,Y,{get:J[Y],enumerable:!0,configurable:!0,set:(X)=>J[Y]=()=>X})};var hH={};KH(hH,{parseDevupTag:()=>s,parseDevupOperations:()=>e,parseCrudConfigsFromMultiple:()=>p,parseCrudConfigs:()=>XH,generateZodTypeDeclarations:()=>uH,generateZodSchemas:()=>vH,generateInterface:()=>NH,generateCrudConfigTypes:()=>gH,generateCrudConfigCode:()=>qH,extractPathParams:()=>a,createUrlMap:()=>VH,buildCrudConfigs:()=>HH});module.exports=GH(hH);var d=require("@devup-api/utils");function N(H,J="camel"){switch(J){case"snake":return d.toSnake(H);case"camel":return d.toCamel(H);case"pascal":return d.toPascal(H);case"maintain":return H;default:return H}}function VH(H,J){let Y=J?.convertCase??"camel",X={};for(let[Q,$]of Object.entries(H)){let U={};for(let[W,Z]of Object.entries($.paths??{})){if(!Z)continue;for(let A of["get","post","put","delete","patch"]){let _=Z[A];if(!_)continue;let L=W.replace(/\{([^}]+)\}/g,(M,G)=>{return`{${N(G,Y)}}`});if(_.operationId)U[N(_.operationId,Y)]={method:A.toUpperCase(),url:L};U[L]={method:A.toUpperCase(),url:L}}}X[Q]=U}return X}var BH=/^devup:([a-zA-Z][a-zA-Z0-9_-]*):(\w+)$/,xH=["one","create","edit","fix"];function s(H){let J=H.match(BH);if(!J)return null;let[,Y,X]=J,Q=X;if(!xH.includes(Q))return null;return{raw:H,name:Y,mode:Q}}function a(H){let J=[],Y=/\{([^}]+)\}/g,X=Y.exec(H);while(X!==null)J.push(X[1]),X=Y.exec(H);return J}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 EH(H,J){let Y=H.split("/");if(Y.length!==4||Y[1]!=="components"||Y[2]!=="schemas")return null;let X=Y[3];return J.components?.schemas?.[X]??null}function FH(H,J){let Y;if("$ref"in H){let $=EH(H.$ref,J);if(!$)return[];Y=$}else Y=H;if(Y.type!=="object"||!Y.properties)return[];let X=new Set(Y.required??[]),Q=[];for(let[$,U]of Object.entries(Y.properties)){if("$ref"in U)continue;let W=U,Z={name:$,type:W.type??"string",required:X.has($)};if(W.format)Z.format=W.format;if(W.description)Z.description=W.description;if(W.minimum!==void 0)Z.minimum=W.minimum;if(W.maximum!==void 0)Z.maximum=W.maximum;if(W.minLength!==void 0)Z.minLength=W.minLength;if(W.maxLength!==void 0)Z.maxLength=W.maxLength;if(W.pattern)Z.pattern=W.pattern;if(W.enum)Z.enum=W.enum;Q.push(Z)}return Q}function PH(H,J){let Y=H.requestBody;if(!Y)return[];let X;if("$ref"in Y)return[];else X=Y;let Q=X.content?.["application/json"];if(!Q?.schema)return[];return FH(Q.schema,J)}function e(H){let J=[];if(!H.paths)return J;let Y=["get","post","put","patch","delete"];for(let[X,Q]of Object.entries(H.paths)){if(!Q)continue;for(let $ of Y){let U=Q[$];if(!U)continue;let W=[];if(U.tags)for(let Z of U.tags){let A=s(Z);if(A){let _=DH($);if(_&&A.mode===_)W.push(A)}}if(W.length>0)J.push({method:$,path:X,operationId:U.operationId,tags:W,params:a(X),operation:U})}}return J}function HH(H,J){let Y={};for(let Q of H)for(let $ of Q.tags){if(!Y[$.name])Y[$.name]={name:$.name};if(!Q.operationId){console.warn(`Skipping ${Q.method.toUpperCase()} ${Q.path} - missing operationId`);continue}let U=["post","put","patch"].includes(Q.method)?PH(Q.operation,J):void 0,W={method:Q.method,operationId:Q.operationId,fields:U},Z=Y[$.name];switch($.mode){case"one":Z.one=W;break;case"create":Z.create=W;break;case"edit":Z.edit=W;break;case"fix":Z.fix=W;break}}let X={};for(let[Q,$]of Object.entries(Y))if($.one&&$.create)X[Q]=$;return X}function XH(H){let J=e(H);return HH(J,H)}function p(H){let J={};for(let Y of Object.values(H)){let X=XH(Y);Object.assign(J,X)}return J}function r(H){return H.split(/[-_]/).map((J)=>J.charAt(0).toUpperCase()+J.slice(1)).join("")}function YH(H){return H.replace(/([A-Z])/g," $1").replace(/[-_]/g," ").trim().split(" ").map((J)=>J.charAt(0).toUpperCase()+J.slice(1).toLowerCase()).join(" ")}function zH(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 kH(H){let J=[];if(H.required)J.push("required: true");if(H.minLength!==void 0)J.push(`minLength: ${H.minLength}`);if(H.maxLength!==void 0)J.push(`maxLength: ${H.maxLength}`);if(H.minimum!==void 0)J.push(`min: ${H.minimum}`);if(H.maximum!==void 0)J.push(`max: ${H.maximum}`);if(H.pattern)J.push(`pattern: /${H.pattern}/`);if(H.type==="number"||H.type==="integer")J.push("valueAsNumber: true");return J.length>0?`{ ${J.join(", ")} }`:""}function wH(H,J){let Y=[],X=zH(H),Q=YH(H.name),$=kH(H),U=$?`register('${H.name}', ${$})`:`register('${H.name}')`;if(H.enum&&H.enum.length>0){Y.push(`${J}<div>`),Y.push(`${J} <label htmlFor="${H.name}">${Q}</label>`),Y.push(`${J} <select id="${H.name}" {...${U}}>`),Y.push(`${J} <option value="">Select...</option>`);for(let W of H.enum)Y.push(`${J} <option value="${W}">${YH(W)}</option>`);return Y.push(`${J} </select>`),Y.push(`${J} {errors.${H.name} && <span>Invalid</span>}`),Y.push(`${J}</div>`),Y}if(H.type==="boolean")return Y.push(`${J}<div>`),Y.push(`${J} <label>`),Y.push(`${J} <input type="checkbox" {...${U}} />`),Y.push(`${J} ${Q}`),Y.push(`${J} </label>`),Y.push(`${J} {errors.${H.name} && <span>Invalid</span>}`),Y.push(`${J}</div>`),Y;if(Y.push(`${J}<div>`),Y.push(`${J} <label htmlFor="${H.name}">${Q}</label>`),Y.push(`${J} <input`),Y.push(`${J} id="${H.name}"`),Y.push(`${J} type="${X}"`),Y.push(`${J} {...${U}}`),H.description)Y.push(`${J} placeholder="${H.description}"`);return Y.push(`${J} />`),Y.push(`${J} {errors.${H.name} && <span>${H.required?"Required":"Invalid"}</span>}`),Y.push(`${J}</div>`),Y}function IH(H,J){let Y=[],X=`${H}Fields`;if(Y.push(`function ${X}() {`),Y.push(" const { register, formState: { errors } } = useFormContext();"),Y.push(""),Y.push(" return ("),Y.push(" <>"),J.length>0)for(let Q of J){let $=wH(Q," ");Y.push(...$)}else Y.push(" {/* No fields defined in OpenAPI schema */}");return Y.push(""),Y.push(' <button type="submit">Submit</button>'),Y.push(" </>"),Y.push(" );"),Y.push("}"),Y}function RH(H,J){let Y=[],X=`${r(H)}Crud`,Q=`${X}Fields`,$=J.edit??J.fix,U=$?.method??"put",W=$?.operationId;if(Y.push(`export function ${X}({`),Y.push(" apiClient,"),Y.push(" params,"),Y.push(" onSuccess,"),Y.push(" onError,"),Y.push("}) {"),Y.push(" const isEdit = !!params;"),Y.push(""),Y.push(" return ("),Y.push(" <ApiForm"),Y.push(" api={apiClient}"),Y.push(` method={isEdit ? '${U}' : 'post'}`),W)Y.push(` path={isEdit ? '${W}' : '${J.create.operationId}'}`);else Y.push(` path={'${J.create.operationId}'}`);return Y.push(" requestOptions={isEdit ? { params } : undefined}"),Y.push(" fetchDefaultValues={isEdit ? {"),Y.push(` path: '${J.one.operationId}',`),Y.push(" options: { params },"),Y.push(" } : undefined}"),Y.push(" onSuccess={onSuccess}"),Y.push(" onError={onError}"),Y.push(" >"),Y.push(` <${Q} />`),Y.push(" </ApiForm>"),Y.push(" );"),Y.push("}"),Y}function qH(H){let J=p(H),Y=[];Y.push("// Auto-generated CRUD components from OpenAPI specs"),Y.push("// Do not edit this file directly"),Y.push("'use client';"),Y.push(""),Y.push("import { ApiForm, useFormContext } from '@devup-api/hookform';"),Y.push("");for(let[X,Q]of Object.entries(J)){let $=`${r(X)}Crud`,U=Q.create.fields??[];Y.push("// ============================================"),Y.push(`// ${$}`),Y.push("// ============================================"),Y.push("");let W=IH($,U);Y.push(...W),Y.push("");let Z=RH(X,Q);Y.push(...Z),Y.push("")}Y.push("export default {");for(let X of Object.keys(J)){let Q=`${r(X)}Crud`;Y.push(` ${X}: ${Q},`)}return Y.push("};"),Y.join(`
2
- `)}function gH(H){let J=p(H),Y=Object.keys(J),X=[];if(X.push("import '@devup-api/ui'"),X.push(""),Y.length>0){X.push("declare module '@devup-api/ui' {"),X.push(" interface DevupCrudApiNames {");for(let Q of Y)X.push(` ${Q}: 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(`
3
- `)}var UH=require("@devup-api/utils");function CH(H){if("nullable"in H&&H.nullable===!0)return!0;if(Array.isArray(H.type)&&H.type.includes("null"))return!0;return!1}function OH(H){return H.find((J)=>J!=="null")}function i(H,J){if(!H.startsWith("#/"))return null;let Y=H.slice(2).split("/"),X=J;for(let Q of Y)if(X&&typeof X==="object"&&Q in X)X=X[Q];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function R(H,J,Y){let X=Y?.defaultNonNullable??!1;if("$ref"in H){let W=i(H.$ref,J);if(W)return R(W,J,Y);return{type:"unknown",default:void 0}}let Q=H;if(Q.allOf){let W=Q.allOf.map((Z)=>R(Z,J,Y));return{type:W.length>0?W.map((Z)=>b(Z.type)).join(" & "):"unknown",default:Q.default}}if(Q.anyOf||Q.oneOf){let W=(Q.anyOf||Q.oneOf||[]).map((Z)=>R(Z,J,Y));return{type:W.length>0?`(${W.map((Z)=>b(Z.type)).join(" | ")})`:"unknown",default:Q.default}}let $=CH(Q);if(Q.enum){let W=Q.enum.map((Z)=>`"${String(Z)}"`).join(" | ");return{type:$?`${W} | null`:W,default:Q.default}}let U=Array.isArray(Q.type)?OH(Q.type):Q.type;if(U==="string")return{type:$?"string | null":"string",default:Q.default};if(U==="number"||U==="integer")return{type:$?"number | null":"number",default:Q.default};if(U==="boolean")return{type:$?"boolean | null":"boolean",default:Q.default};if(U==="array"){let W="items"in Q?Q.items:void 0;if(W){let Z=R(W,J,Y);return{type:$?{__isArray:!0,items:Z.type,__nullable:!0}:{__isArray:!0,items:Z.type},default:Q.default}}return{type:$?"unknown[] | null":"unknown[]",default:Q.default}}if(U==="object"||Q.properties){let W={},Z=Q.required||[];if(Q.properties)for(let[A,_]of Object.entries(Q.properties)){let L=R(_,J,Y),M=!1;if("$ref"in _){let K=i(_.$ref,J);if(K)M=K.default!==void 0}else M=_.default!==void 0;let G=Z.includes(A);if(X&&M&&!G)W[A]=L;else if(!G)W[`${A}?`]=L;else W[A]=L}if(Q.additionalProperties){if(Q.additionalProperties===!0)W["[key: string]"]={type:"unknown",default:void 0};else if(typeof Q.additionalProperties==="object"){let A=R(Q.additionalProperties,J,Y);W["[key: string]"]={type:A.type,default:A.default}}}return{type:$?{...W,__nullable:!0}:{...W},default:Q.default}}return{type:"unknown",default:void 0}}function JH(H){return typeof H==="object"&&H!==null&&"type"in H&&"in"in H&&"name"in H}function WH(H){let J=Object.entries(H);if(J.length===0)return!0;return J.every(([Y,X])=>{if(Y.endsWith("?"))return!0;if(JH(X))return X.required===!1;if(t(X))return!1;if(typeof X==="object"&&X!==null&&!Array.isArray(X))return WH(X);return!1})}function $H(H,J=0){let Y=" ".repeat(J),X=J+1,Q=" ".repeat(X),$=Object.entries(H).map(([U,W])=>{if(typeof W==="string")return`${Q}${U}: ${W}`;if(JH(W)){let L=b(W.type,X),G=W.required===!1?`${U}?`:U,K="";if(W.description){if(K+=`${Q}/**
1
+ var{defineProperty:o,getOwnPropertyNames:AH,getOwnPropertyDescriptor:ZH}=Object,MH=Object.prototype.hasOwnProperty;var n=new WeakMap,GH=(H)=>{var $=n.get(H),Y;if($)return $;if($=o({},"__esModule",{value:!0}),H&&typeof H==="object"||typeof H==="function")AH(H).map((X)=>!MH.call($,X)&&o($,X,{get:()=>H[X],enumerable:!(Y=ZH(H,X))||Y.enumerable}));return n.set(H,$),$};var VH=(H,$)=>{for(var Y in $)o(H,Y,{get:$[Y],enumerable:!0,configurable:!0,set:(X)=>$[Y]=()=>X})};var hH={};VH(hH,{parseDevupTag:()=>s,parseDevupOperations:()=>e,parseCrudConfigsFromMultiple:()=>p,parseCrudConfigs:()=>XH,generateZodTypeDeclarations:()=>uH,generateZodSchemas:()=>vH,generateInterface:()=>NH,generateCrudConfigTypes:()=>gH,generateCrudConfigCode:()=>IH,extractPathParams:()=>a,createUrlMap:()=>BH,buildCrudConfigs:()=>HH});module.exports=GH(hH);var d=require("@devup-api/utils");function N(H,$="camel"){switch($){case"snake":return d.toSnake(H);case"camel":return d.toCamel(H);case"pascal":return d.toPascal(H);case"maintain":return H;default:return H}}function BH(H,$){let Y=$?.convertCase??"camel",X={};for(let[Q,J]of Object.entries(H)){let U={};for(let[W,Z]of Object.entries(J.paths??{})){if(!Z)continue;for(let A of["get","post","put","delete","patch"]){let _=Z[A];if(!_)continue;let L=W.replace(/\{([^}]+)\}/g,(M,G)=>{return`{${N(G,Y)}}`});if(_.operationId)U[N(_.operationId,Y)]={method:A.toUpperCase(),url:L};U[L]={method:A.toUpperCase(),url:L}}}X[Q]=U}return X}var xH=/^devup:([a-zA-Z][a-zA-Z0-9_-]*):(\w+)$/,KH=["one","create","edit","fix"];function s(H){let $=H.match(xH);if(!$)return null;let[,Y,X]=$,Q=X;if(!KH.includes(Q))return null;return{raw:H,name:Y,mode:Q}}function a(H){let $=[],Y=/\{([^}]+)\}/g,X=Y.exec(H);while(X!==null)$.push(X[1]),X=Y.exec(H);return $}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 EH(H,$){let Y=H.split("/");if(Y.length!==4||Y[1]!=="components"||Y[2]!=="schemas")return null;let X=Y[3];return $.components?.schemas?.[X]??null}function FH(H,$){let Y;if("$ref"in H){let J=EH(H.$ref,$);if(!J)return[];Y=J}else Y=H;if(Y.type!=="object"||!Y.properties)return[];let X=new Set(Y.required??[]),Q=[];for(let[J,U]of Object.entries(Y.properties)){if("$ref"in U)continue;let W=U,Z={name:J,type:W.type??"string",required:X.has(J)};if(W.format)Z.format=W.format;if(W.description)Z.description=W.description;if(W.minimum!==void 0)Z.minimum=W.minimum;if(W.maximum!==void 0)Z.maximum=W.maximum;if(W.minLength!==void 0)Z.minLength=W.minLength;if(W.maxLength!==void 0)Z.maxLength=W.maxLength;if(W.pattern)Z.pattern=W.pattern;if(W.enum)Z.enum=W.enum;Q.push(Z)}return Q}function PH(H,$){let Y=H.requestBody;if(!Y)return[];let X;if("$ref"in Y)return[];else X=Y;let Q=X.content?.["application/json"];if(!Q?.schema)return[];return FH(Q.schema,$)}function e(H){let $=[];if(!H.paths)return $;let Y=["get","post","put","patch","delete"];for(let[X,Q]of Object.entries(H.paths)){if(!Q)continue;for(let J of Y){let U=Q[J];if(!U)continue;let W=[];if(U.tags)for(let Z of U.tags){let A=s(Z);if(A){let _=DH(J);if(_&&A.mode===_)W.push(A)}}if(W.length>0)$.push({method:J,path:X,operationId:U.operationId,tags:W,params:a(X),operation:U})}}return $}function HH(H,$){let Y={};for(let Q of H)for(let J of Q.tags){if(!Y[J.name])Y[J.name]={name:J.name};if(!Q.operationId){console.warn(`Skipping ${Q.method.toUpperCase()} ${Q.path} - missing operationId`);continue}let U=["post","put","patch"].includes(Q.method)?PH(Q.operation,$):void 0,W={method:Q.method,operationId:Q.operationId,fields:U},Z=Y[J.name];switch(J.mode){case"one":Z.one=W;break;case"create":Z.create=W;break;case"edit":Z.edit=W;break;case"fix":Z.fix=W;break}}let X={};for(let[Q,J]of Object.entries(Y))if(J.one&&J.create)X[Q]=J;return X}function XH(H){let $=e(H);return HH($,H)}function p(H){let $={};for(let Y of Object.values(H)){let X=XH(Y);Object.assign($,X)}return $}function k(H){if(H==="")return H;let $=H.endsWith("?"),Y=$?H.slice(0,-1):H;if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(Y)||Y.includes('"')||Y.includes("'")||Y.includes("`")){let Q=`[\`${Y}\`]`;return $?`${Q}?`:Q}return H}function r(H){return H.split(/[-_]/).map(($)=>$.charAt(0).toUpperCase()+$.slice(1)).join("")}function YH(H){return H.replace(/([A-Z])/g," $1").replace(/[-_]/g," ").trim().split(" ").map(($)=>$.charAt(0).toUpperCase()+$.slice(1).toLowerCase()).join(" ")}function kH(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 zH(H){let $=[];if(H.required)$.push("required: true");if(H.minLength!==void 0)$.push(`minLength: ${H.minLength}`);if(H.maxLength!==void 0)$.push(`maxLength: ${H.maxLength}`);if(H.minimum!==void 0)$.push(`min: ${H.minimum}`);if(H.maximum!==void 0)$.push(`max: ${H.maximum}`);if(H.pattern)$.push(`pattern: /${H.pattern}/`);if(H.type==="number"||H.type==="integer")$.push("valueAsNumber: true");return $.length>0?`{ ${$.join(", ")} }`:""}function wH(H,$){let Y=[],X=kH(H),Q=YH(H.name),J=zH(H),U=J?`register('${H.name}', ${J})`:`register('${H.name}')`;if(H.enum&&H.enum.length>0){Y.push(`${$}<div>`),Y.push(`${$} <label htmlFor="${H.name}">${Q}</label>`),Y.push(`${$} <select id="${H.name}" {...${U}}>`),Y.push(`${$} <option value="">Select...</option>`);for(let W of H.enum)Y.push(`${$} <option value="${W}">${YH(W)}</option>`);return Y.push(`${$} </select>`),Y.push(`${$} {errors.${H.name} && <span>Invalid</span>}`),Y.push(`${$}</div>`),Y}if(H.type==="boolean")return Y.push(`${$}<div>`),Y.push(`${$} <label>`),Y.push(`${$} <input type="checkbox" {...${U}} />`),Y.push(`${$} ${Q}`),Y.push(`${$} </label>`),Y.push(`${$} {errors.${H.name} && <span>Invalid</span>}`),Y.push(`${$}</div>`),Y;if(Y.push(`${$}<div>`),Y.push(`${$} <label htmlFor="${H.name}">${Q}</label>`),Y.push(`${$} <input`),Y.push(`${$} id="${H.name}"`),Y.push(`${$} type="${X}"`),Y.push(`${$} {...${U}}`),H.description)Y.push(`${$} placeholder="${H.description}"`);return Y.push(`${$} />`),Y.push(`${$} {errors.${H.name} && <span>${H.required?"Required":"Invalid"}</span>}`),Y.push(`${$}</div>`),Y}function RH(H,$){let Y=[],X=`${H}Fields`;if(Y.push(`function ${X}() {`),Y.push(" const { register, formState: { errors } } = useFormContext();"),Y.push(""),Y.push(" return ("),Y.push(" <>"),$.length>0)for(let Q of $){let J=wH(Q," ");Y.push(...J)}else Y.push(" {/* No fields defined in OpenAPI schema */}");return Y.push(""),Y.push(' <button type="submit">Submit</button>'),Y.push(" </>"),Y.push(" );"),Y.push("}"),Y}function qH(H,$){let Y=[],X=`${r(H)}Crud`,Q=`${X}Fields`,J=$.edit??$.fix,U=J?.method??"put",W=J?.operationId;if(Y.push(`export function ${X}({`),Y.push(" apiClient,"),Y.push(" params,"),Y.push(" onSuccess,"),Y.push(" onError,"),Y.push("}) {"),Y.push(" const isEdit = !!params;"),Y.push(""),Y.push(" return ("),Y.push(" <ApiForm"),Y.push(" api={apiClient}"),Y.push(` method={isEdit ? '${U}' : 'post'}`),W)Y.push(` path={isEdit ? '${W}' : '${$.create.operationId}'}`);else Y.push(` path={'${$.create.operationId}'}`);return Y.push(" requestOptions={isEdit ? { params } : undefined}"),Y.push(" fetchDefaultValues={isEdit ? {"),Y.push(` path: '${$.one.operationId}',`),Y.push(" options: { params },"),Y.push(" } : undefined}"),Y.push(" onSuccess={onSuccess}"),Y.push(" onError={onError}"),Y.push(" >"),Y.push(` <${Q} />`),Y.push(" </ApiForm>"),Y.push(" );"),Y.push("}"),Y}function IH(H){let $=p(H),Y=[];Y.push("// Auto-generated CRUD components from OpenAPI specs"),Y.push("// Do not edit this file directly"),Y.push("'use client';"),Y.push(""),Y.push("import { ApiForm, useFormContext } from '@devup-api/hookform';"),Y.push("");for(let[X,Q]of Object.entries($)){let J=`${r(X)}Crud`,U=Q.create.fields??[];Y.push("// ============================================"),Y.push(`// ${J}`),Y.push("// ============================================"),Y.push("");let W=RH(J,U);Y.push(...W),Y.push("");let Z=qH(X,Q);Y.push(...Z),Y.push("")}Y.push("export default {");for(let X of Object.keys($)){let Q=`${r(X)}Crud`;Y.push(` ${X}: ${Q},`)}return Y.push("};"),Y.join(`
2
+ `)}function gH(H){let $=p(H),Y=Object.keys($),X=[];if(X.push("import '@devup-api/ui'"),X.push(""),Y.length>0){X.push("declare module '@devup-api/ui' {"),X.push(" interface DevupCrudApiNames {");for(let Q of Y)X.push(` ${k(Q)}: 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(`
3
+ `)}var UH=require("@devup-api/utils");function CH(H){if("nullable"in H&&H.nullable===!0)return!0;if(Array.isArray(H.type)&&H.type.includes("null"))return!0;return!1}function TH(H){return H.find(($)=>$!=="null")}function i(H,$){if(!H.startsWith("#/"))return null;let Y=H.slice(2).split("/"),X=$;for(let Q of Y)if(X&&typeof X==="object"&&Q in X)X=X[Q];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function q(H,$,Y){let X=Y?.defaultNonNullable??!1;if("$ref"in H){let W=i(H.$ref,$);if(W)return q(W,$,Y);return{type:"unknown",default:void 0}}let Q=H;if(Q.allOf){let W=Q.allOf.map((Z)=>q(Z,$,Y));return{type:W.length>0?W.map((Z)=>b(Z.type)).join(" & "):"unknown",default:Q.default}}if(Q.anyOf||Q.oneOf){let W=(Q.anyOf||Q.oneOf||[]).map((Z)=>q(Z,$,Y));return{type:W.length>0?`(${W.map((Z)=>b(Z.type)).join(" | ")})`:"unknown",default:Q.default}}let J=CH(Q);if(Q.enum){let W=Q.enum.map((Z)=>`"${String(Z)}"`).join(" | ");return{type:J?`${W} | null`:W,default:Q.default}}let U=Array.isArray(Q.type)?TH(Q.type):Q.type;if(U==="string")return{type:J?"string | null":"string",default:Q.default};if(U==="number"||U==="integer")return{type:J?"number | null":"number",default:Q.default};if(U==="boolean")return{type:J?"boolean | null":"boolean",default:Q.default};if(U==="array"){let W="items"in Q?Q.items:void 0;if(W){let Z=q(W,$,Y);return{type:J?{__isArray:!0,items:Z.type,__nullable:!0}:{__isArray:!0,items:Z.type},default:Q.default}}return{type:J?"unknown[] | null":"unknown[]",default:Q.default}}if(U==="object"||Q.properties){let W={},Z=Q.required||[];if(Q.properties)for(let[A,_]of Object.entries(Q.properties)){let L=q(_,$,Y),M=!1;if("$ref"in _){let V=i(_.$ref,$);if(V)M=V.default!==void 0}else M=_.default!==void 0;let G=Z.includes(A);if(X&&M&&!G)W[A]=L;else if(!G)W[`${A}?`]=L;else W[A]=L}if(Q.additionalProperties){if(Q.additionalProperties===!0)W["[key: string]"]={type:"unknown",default:void 0};else if(typeof Q.additionalProperties==="object"){let A=q(Q.additionalProperties,$,Y);W["[key: string]"]={type:A.type,default:A.default}}}return{type:J?{...W,__nullable:!0}:{...W},default:Q.default}}return{type:"unknown",default:void 0}}function JH(H){return typeof H==="object"&&H!==null&&"type"in H&&"in"in H&&"name"in H}function WH(H){let $=Object.entries(H);if($.length===0)return!0;return $.every(([Y,X])=>{if(Y.endsWith("?"))return!0;if(JH(X))return X.required===!1;if(t(X))return!1;if(typeof X==="object"&&X!==null&&!Array.isArray(X))return WH(X);return!1})}function $H(H,$=0){let Y=" ".repeat($),X=$+1,Q=" ".repeat(X),J=Object.entries(H).map(([U,W])=>{if(typeof W==="string")return`${Q}${k(U)}: ${W}`;if(JH(W)){let L=b(W.type,X),M=W.required===!1,G=k(U),V=M?`${G}?`:G,K="";if(W.description){if(K+=`${Q}/**
4
4
  ${Q} * ${W.description}`,typeof W.default<"u")K+=`
5
5
  ${Q} * @default {${W.default}}`;K=`${K}
6
6
  ${Q} */
7
7
  ${Q}`}else if(typeof W.default<"u")K+=`${Q}/** @default {${W.default}} */
8
- ${Q}`;else K=Q;return`${K}${G}: ${L}`}if(t(W)){let L=b(W.type,X);return`${Q}${U}: ${L}`}let A=typeof W==="object"&&W!==null&&!Array.isArray(W)&&WH(W)?"?":"",_=b(W,X);return`${Q}${U}${A}: ${_}`}).join(`;
9
- `);if($.length===0)return"{}";return`{
10
- ${$};
11
- ${Y}}`}function t(H){return typeof H==="object"&&H!==null&&"type"in H&&Object.keys(H).length<=2&&(!("default"in H)||Object.keys(H).length===2)}function TH(H){return typeof H==="object"&&H!==null&&"__isArray"in H&&H.__isArray===!0}function jH(H){return typeof H==="object"&&H!==null&&"__nullable"in H&&H.__nullable===!0}function b(H,J=0){if(typeof H==="string")return H;if(TH(H)){let X=`Array<${b(H.items,J)}>`;return H.__nullable?`${X} | null`:X}if(t(H))return b(H.type,J);if(jH(H)){let{__nullable:Y,...X}=H;return`${$H(X,J)} | null`}if(typeof H==="object"&&H!==null&&!Array.isArray(H))return $H(H,J);return String(H)}function QH(H,J,Y){let X={},Q={},$={},U=[...H?.parameters||[],...J?.parameters||[]];for(let W of U){if("$ref"in W){let M=i(W.$ref,Y);if(M&&"in"in M&&"name"in M&&typeof M.in==="string"&&typeof M.name==="string"){let G="schema"in M&&M.schema?M.schema:{},{type:K,default:D}=R(G,Y,{defaultNonNullable:!1}),B={...M,type:K,default:D};if(M.in==="path")X[M.name]=B;else if(M.in==="query")Q[M.name]=B;else if(M.in==="header")$[M.name]=B}continue}let Z=W.schema||{},{type:A,default:_}=R(Z,Y,{defaultNonNullable:!1}),L={...W,type:A,default:_};if(W.in==="path")X[W.name]=L;else if(W.in==="query")Q[W.name]=L;else if(W.in==="header")$[W.name]=L}return{pathParams:X,queryParams:Q,headerParams:$}}function c(H,J){if(!H)return;if("$ref"in H){let X=i(H.$ref,J);if(X&&"content"in X&&X.content){let $=X.content["application/json"];if($&&"schema"in $&&$.schema)return R($.schema,J,{defaultNonNullable:!1}).type}return"unknown"}let Y=H.content;if(Y){let X=Y["application/json"];if(X&&"schema"in X&&X.schema)return R(X.schema,J,{defaultNonNullable:!1}).type}return}function w(H){if(H==="")return H;if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(H)||H.includes('"')||H.includes("'")||H.includes("`"))return`[\`${H}\`]`;return H}function f(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function bH(H){return H.replace(/^\.\//,"")}function SH(H,J,Y){let X={get:{},post:{},put:{},delete:{},patch:{}},Q=Y?.convertCase??"camel",$=(G,K)=>{if("$ref"in G){let B=f(G.$ref);if(B)K.add(B);return}let D=G;if(D.allOf)D.allOf.forEach((B)=>{$(B,K)});if(D.anyOf)D.anyOf.forEach((B)=>{$(B,K)});if(D.oneOf)D.oneOf.forEach((B)=>{$(B,K)});if(D.properties)Object.values(D.properties).forEach((B)=>{$(B,K)});if(D.type==="array"&&"items"in D&&D.items)$(D.items,K)},U=new Set,W=new Set,Z=new Set,A=(G)=>{if(G==="default")return!0;let K=parseInt(G,10);return K>=400&&K<600};if(H.paths)for(let G of Object.values(H.paths)){if(!G)continue;let K=["get","post","put","delete","patch"];for(let D of K){let B=G[D];if(!B)continue;if(B.requestBody)if("$ref"in B.requestBody){let V=f(B.requestBody.$ref);if(V)U.add(V)}else{let x=B.requestBody.content?.["application/json"];if(x&&"schema"in x&&x.schema)$(x.schema,U)}if(B.responses)for(let[V,x]of Object.entries(B.responses)){let F=A(V);if("$ref"in x){let I=f(x.$ref);if(I)if(F)Z.add(I);else W.add(I)}else if("content"in x){let P=x.content?.["application/json"];if(P&&"schema"in P&&P.schema)if(F)$(P.schema,Z);else $(P.schema,W)}}}}if(H.paths)for(let[G,K]of Object.entries(H.paths)){if(!K)continue;let D=["get","post","put","delete","patch"];for(let B of D){let V=K[B];if(!V)continue;let x={},{pathParams:F,queryParams:I}=QH(K,V,H),P={};for(let[z,T]of Object.entries(F)){let E=N(z,Q);P[E]=T}let O={};for(let[z,T]of Object.entries(I)){let E=N(z,Q);O[E]=T}if(Object.keys(P).length>0)x.params=P;if(Object.keys(O).length>0)x.query=O;let j;if(V.requestBody)if("$ref"in V.requestBody){let z=c(V.requestBody,H);if(z!==void 0)j=z}else{let T=V.requestBody.content?.["application/json"];if(T&&"schema"in T&&T.schema)if("$ref"in T.schema){let E=f(T.schema.$ref);if(E&&H.components?.schemas?.[E]&&U.has(E))j=`DevupObject<'request', '${J}'>['${E}']`;else{let k=c(V.requestBody,H);if(k!==void 0)j=k}}else{let E=c(V.requestBody,H);if(E!==void 0)j=E}}if(j!==void 0)x.body=j;let q;if(V.responses){let z=V.responses["200"]||V.responses["201"]||Object.values(V.responses)[0];if(z){if("$ref"in z);else if("content"in z){let E=z.content?.["application/json"];if(E&&"schema"in E&&E.schema)if("$ref"in E.schema){let k=f(E.schema.$ref);if(k&&H.components?.schemas?.[k]&&W.has(k))q=`DevupObject<'response', '${J}'>['${k}']`;else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=R(E.schema,H,{defaultNonNullable:C});q=S}}else{let k=E.schema;if(k.type==="array"&&k.items&&"$ref"in k.items){let C=f(k.items.$ref);if(C&&H.components?.schemas?.[C]&&W.has(C))q=`Array<DevupObject<'response', '${J}'>['${C}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:m}=R(E.schema,H,{defaultNonNullable:S});q=m}}else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=R(E.schema,H,{defaultNonNullable:C});q=S}}}}}if(q!==void 0)x.response=q;let g;if(V.responses){let z=V.responses["400"]||V.responses["401"]||V.responses["403"]||V.responses["404"]||V.responses["422"]||V.responses["500"]||V.responses.default||Object.entries(V.responses).find(([T])=>A(T))?.[1];if(z){if("$ref"in z);else if("content"in z){let E=z.content?.["application/json"];if(E&&"schema"in E&&E.schema)if("$ref"in E.schema){let k=f(E.schema.$ref);if(k&&H.components?.schemas?.[k]&&Z.has(k))g=`DevupObject<'error', '${J}'>['${k}']`;else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=R(E.schema,H,{defaultNonNullable:C});g=S}}else{let k=E.schema;if(k.type==="array"&&k.items&&"$ref"in k.items){let C=f(k.items.$ref);if(C&&H.components?.schemas?.[C]&&Z.has(C))g=`Array<DevupObject<'error', '${J}'>['${C}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:m}=R(E.schema,H,{defaultNonNullable:S});g=m}}else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=R(E.schema,H,{defaultNonNullable:C});g=S}}}}}if(g!==void 0)x.error=g;let y=G.replace(/\{([^}]+)\}/g,(z,T)=>{return`{${N(T,Q)}}`});if(X[B][y]=x,V.operationId){let z=N(V.operationId,Q);X[B][z]=x}}}let _={},L={},M={};if(H.components?.schemas){for(let[G,K]of Object.entries(H.components.schemas))if(K){let D=Y?.requestDefaultNonNullable??!1,V=Y?.responseDefaultNonNullable??!0;if(U.has(G))V=D;let{type:x}=R(K,H,{defaultNonNullable:V});if(U.has(G))_[G]=x;if(W.has(G))L[G]=x;if(Z.has(G))M[G]=x}}return{endpoints:X,requestComponents:_,responseComponents:L,errorComponents:M}}function NH(H,J){let Y=[],X=new Map,Q={},$={},U={},W={};for(let[F,I]of Object.entries(H)){let P=bH(F);Y.push(P),X.set(P,F);let{endpoints:O,requestComponents:j,responseComponents:q,errorComponents:g}=SH(I,P,J);Q[P]=O,$[P]=j,U[P]=q,W[P]=g}let A=` interface DevupApiServers {
12
- ${Y.map((F)=>` ${w(F)}: never`).join(`;
8
+ ${Q}`;else K=Q;return`${K}${V}: ${L}`}if(t(W)){let L=b(W.type,X);return`${Q}${k(U)}: ${L}`}let A=typeof W==="object"&&W!==null&&!Array.isArray(W)&&WH(W)?"?":"",_=b(W,X);return`${Q}${k(U)}${A}: ${_}`}).join(`;
9
+ `);if(J.length===0)return"{}";return`{
10
+ ${J};
11
+ ${Y}}`}function t(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 jH(H){return typeof H==="object"&&H!==null&&"__nullable"in H&&H.__nullable===!0}function b(H,$=0){if(typeof H==="string")return H;if(OH(H)){let X=`Array<${b(H.items,$)}>`;return H.__nullable?`${X} | null`:X}if(t(H))return b(H.type,$);if(jH(H)){let{__nullable:Y,...X}=H;return`${$H(X,$)} | null`}if(typeof H==="object"&&H!==null&&!Array.isArray(H))return $H(H,$);return String(H)}function QH(H,$,Y){let X={},Q={},J={},U=[...H?.parameters||[],...$?.parameters||[]];for(let W of U){if("$ref"in W){let M=i(W.$ref,Y);if(M&&"in"in M&&"name"in M&&typeof M.in==="string"&&typeof M.name==="string"){let G="schema"in M&&M.schema?M.schema:{},{type:V,default:K}=q(G,Y,{defaultNonNullable:!1}),x={...M,type:V,default:K};if(M.in==="path")X[M.name]=x;else if(M.in==="query")Q[M.name]=x;else if(M.in==="header")J[M.name]=x}continue}let Z=W.schema||{},{type:A,default:_}=q(Z,Y,{defaultNonNullable:!1}),L={...W,type:A,default:_};if(W.in==="path")X[W.name]=L;else if(W.in==="query")Q[W.name]=L;else if(W.in==="header")J[W.name]=L}return{pathParams:X,queryParams:Q,headerParams:J}}function c(H,$){if(!H)return;if("$ref"in H){let X=i(H.$ref,$);if(X&&"content"in X&&X.content){let J=X.content["application/json"];if(J&&"schema"in J&&J.schema)return q(J.schema,$,{defaultNonNullable:!1}).type}return"unknown"}let Y=H.content;if(Y){let X=Y["application/json"];if(X&&"schema"in X&&X.schema)return q(X.schema,$,{defaultNonNullable:!1}).type}return}function f(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function bH(H){return H.replace(/^\.\//,"")}function SH(H,$,Y){let X={get:{},post:{},put:{},delete:{},patch:{}},Q=Y?.convertCase??"camel",J=(G,V)=>{if("$ref"in G){let x=f(G.$ref);if(x)V.add(x);return}let K=G;if(K.allOf)K.allOf.forEach((x)=>{J(x,V)});if(K.anyOf)K.anyOf.forEach((x)=>{J(x,V)});if(K.oneOf)K.oneOf.forEach((x)=>{J(x,V)});if(K.properties)Object.values(K.properties).forEach((x)=>{J(x,V)});if(K.type==="array"&&"items"in K&&K.items)J(K.items,V)},U=new Set,W=new Set,Z=new Set,A=(G)=>{if(G==="default")return!0;let V=parseInt(G,10);return V>=400&&V<600};if(H.paths)for(let G of Object.values(H.paths)){if(!G)continue;let V=["get","post","put","delete","patch"];for(let K of V){let x=G[K];if(!x)continue;if(x.requestBody)if("$ref"in x.requestBody){let B=f(x.requestBody.$ref);if(B)U.add(B)}else{let D=x.requestBody.content?.["application/json"];if(D&&"schema"in D&&D.schema)J(D.schema,U)}if(x.responses)for(let[B,D]of Object.entries(x.responses)){let F=A(B);if("$ref"in D){let R=f(D.$ref);if(R)if(F)Z.add(R);else W.add(R)}else if("content"in D){let P=D.content?.["application/json"];if(P&&"schema"in P&&P.schema)if(F)J(P.schema,Z);else J(P.schema,W)}}}}if(H.paths)for(let[G,V]of Object.entries(H.paths)){if(!V)continue;let K=["get","post","put","delete","patch"];for(let x of K){let B=V[x];if(!B)continue;let D={},{pathParams:F,queryParams:R}=QH(V,B,H),P={};for(let[z,O]of Object.entries(F)){let E=N(z,Q);P[E]=O}let T={};for(let[z,O]of Object.entries(R)){let E=N(z,Q);T[E]=O}if(Object.keys(P).length>0)D.params=P;if(Object.keys(T).length>0)D.query=T;let j;if(B.requestBody)if("$ref"in B.requestBody){let z=c(B.requestBody,H);if(z!==void 0)j=z}else{let O=B.requestBody.content?.["application/json"];if(O&&"schema"in O&&O.schema)if("$ref"in O.schema){let E=f(O.schema.$ref);if(E&&H.components?.schemas?.[E]&&U.has(E))j=`DevupObject<'request', '${$}'>['${E}']`;else{let w=c(B.requestBody,H);if(w!==void 0)j=w}}else{let E=c(B.requestBody,H);if(E!==void 0)j=E}}if(j!==void 0)D.body=j;let I;if(B.responses){let z=B.responses["200"]||B.responses["201"]||Object.values(B.responses)[0];if(z){if("$ref"in z);else if("content"in z){let E=z.content?.["application/json"];if(E&&"schema"in E&&E.schema)if("$ref"in E.schema){let w=f(E.schema.$ref);if(w&&H.components?.schemas?.[w]&&W.has(w))I=`DevupObject<'response', '${$}'>['${w}']`;else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=q(E.schema,H,{defaultNonNullable:C});I=S}}else{let w=E.schema;if(w.type==="array"&&w.items&&"$ref"in w.items){let C=f(w.items.$ref);if(C&&H.components?.schemas?.[C]&&W.has(C))I=`Array<DevupObject<'response', '${$}'>['${C}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:m}=q(E.schema,H,{defaultNonNullable:S});I=m}}else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=q(E.schema,H,{defaultNonNullable:C});I=S}}}}}if(I!==void 0)D.response=I;let g;if(B.responses){let z=B.responses["400"]||B.responses["401"]||B.responses["403"]||B.responses["404"]||B.responses["422"]||B.responses["500"]||B.responses.default||Object.entries(B.responses).find(([O])=>A(O))?.[1];if(z){if("$ref"in z);else if("content"in z){let E=z.content?.["application/json"];if(E&&"schema"in E&&E.schema)if("$ref"in E.schema){let w=f(E.schema.$ref);if(w&&H.components?.schemas?.[w]&&Z.has(w))g=`DevupObject<'error', '${$}'>['${w}']`;else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=q(E.schema,H,{defaultNonNullable:C});g=S}}else{let w=E.schema;if(w.type==="array"&&w.items&&"$ref"in w.items){let C=f(w.items.$ref);if(C&&H.components?.schemas?.[C]&&Z.has(C))g=`Array<DevupObject<'error', '${$}'>['${C}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:m}=q(E.schema,H,{defaultNonNullable:S});g=m}}else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=q(E.schema,H,{defaultNonNullable:C});g=S}}}}}if(g!==void 0)D.error=g;let y=G.replace(/\{([^}]+)\}/g,(z,O)=>{return`{${N(O,Q)}}`});if(X[x][y]=D,B.operationId){let z=N(B.operationId,Q);X[x][z]=D}}}let _={},L={},M={};if(H.components?.schemas){for(let[G,V]of Object.entries(H.components.schemas))if(V){let K=Y?.requestDefaultNonNullable??!1,B=Y?.responseDefaultNonNullable??!0;if(U.has(G))B=K;let{type:D}=q(V,H,{defaultNonNullable:B});if(U.has(G))_[G]=D;if(W.has(G))L[G]=D;if(Z.has(G))M[G]=D}}return{endpoints:X,requestComponents:_,responseComponents:L,errorComponents:M}}function NH(H,$){let Y=[],X=new Map,Q={},J={},U={},W={};for(let[F,R]of Object.entries(H)){let P=bH(F);Y.push(P),X.set(P,F);let{endpoints:T,requestComponents:j,responseComponents:I,errorComponents:g}=SH(R,P,$);Q[P]=T,J[P]=j,U[P]=I,W[P]=g}let A=` interface DevupApiServers {
12
+ ${Y.map((F)=>` ${k(F)}: never`).join(`;
13
13
  `)}
14
- }`,_=[],L=["get","post","put","delete","patch"];for(let F of L){let I=[];for(let P of Y){let O=Q[P]?.[F];if(O&&Object.keys(O).length>0){let j=Object.entries(O).map(([g,y])=>{let z=b(y,3);return` ${w(g)}: ${z}`}).join(`;
15
- `),q=w(P);I.push(` ${q}: {
14
+ }`,_=[],L=["get","post","put","delete","patch"];for(let F of L){let R=[];for(let P of Y){let T=Q[P]?.[F];if(T&&Object.keys(T).length>0){let j=Object.entries(T).map(([g,y])=>{let z=b(y,3);return` ${k(g)}: ${z}`}).join(`;
15
+ `),I=k(P);R.push(` ${I}: {
16
16
  ${j};
17
- }`)}}if(I.length>0){let P=`Devup${UH.toPascal(F)}ApiStruct`;_.push(` interface ${P} {
18
- ${I.join(`;
17
+ }`)}}if(R.length>0){let P=`Devup${UH.toPascal(F)}ApiStruct`;_.push(` interface ${P} {
18
+ ${R.join(`;
19
19
  `)}
20
- }`)}}let M=[],G=[],K=[];for(let F of Y){let I=w(F),P=$[F]||{};if(Object.keys(P).length>0){let q=Object.entries(P).map(([g,y])=>{let z=b(y,3);return` ${w(g)}: ${z}`}).join(`;
21
- `);M.push(` ${I}: {
22
- ${q};
23
- }`)}let O=U[F]||{};if(Object.keys(O).length>0){let q=Object.entries(O).map(([g,y])=>{let z=b(y,3);return` ${w(g)}: ${z}`}).join(`;
24
- `);G.push(` ${I}: {
25
- ${q};
26
- }`)}let j=W[F]||{};if(Object.keys(j).length>0){let q=Object.entries(j).map(([g,y])=>{let z=b(y,2);return` ${w(g)}: ${z}`}).join(`;
27
- `);K.push(` ${I}: {
28
- ${q};
29
- }`)}}let D=M.length>0?` interface DevupRequestComponentStruct {
20
+ }`)}}let M=[],G=[],V=[];for(let F of Y){let R=k(F),P=J[F]||{};if(Object.keys(P).length>0){let I=Object.entries(P).map(([g,y])=>{let z=b(y,3);return` ${k(g)}: ${z}`}).join(`;
21
+ `);M.push(` ${R}: {
22
+ ${I};
23
+ }`)}let T=U[F]||{};if(Object.keys(T).length>0){let I=Object.entries(T).map(([g,y])=>{let z=b(y,3);return` ${k(g)}: ${z}`}).join(`;
24
+ `);G.push(` ${R}: {
25
+ ${I};
26
+ }`)}let j=W[F]||{};if(Object.keys(j).length>0){let I=Object.entries(j).map(([g,y])=>{let z=b(y,2);return` ${k(g)}: ${z}`}).join(`;
27
+ `);V.push(` ${R}: {
28
+ ${I};
29
+ }`)}}let K=M.length>0?` interface DevupRequestComponentStruct {
30
30
  ${M.join(`;
31
31
  `)}
32
- }`:" interface DevupRequestComponentStruct {}",B=G.length>0?` interface DevupResponseComponentStruct {
32
+ }`:" interface DevupRequestComponentStruct {}",x=G.length>0?` interface DevupResponseComponentStruct {
33
33
  ${G.join(`;
34
34
  `)}
35
- }`:" interface DevupResponseComponentStruct {}",V=K.length>0?` interface DevupErrorComponentStruct {
36
- ${K.join(`;
35
+ }`:" interface DevupResponseComponentStruct {}",B=V.length>0?` interface DevupErrorComponentStruct {
36
+ ${V.join(`;
37
37
  `)}
38
38
  }`:" interface DevupErrorComponentStruct {}";return`import "@devup-api/fetch";
39
39
  import type { DevupObject } from "@devup-api/fetch";
40
40
 
41
41
  declare module "@devup-api/fetch" {
42
- ${[A,..._,D,B,V].join(`
42
+ ${[A,..._,K,x,B].join(`
43
43
 
44
44
  `)}
45
- }`}function _H(H){return H.replace(/^\.\//,"")}function l(H,J){if(!H.startsWith("#/"))return null;let Y=H.slice(2).split("/"),X=J;for(let Q of Y)if(X&&typeof X==="object"&&Q in X)X=X[Q];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function h(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function yH(H){if(H==="default")return!0;let J=parseInt(H,10);return J>=400&&J<600}function v(H,J,Y,X){let Q=X?.defaultNonNullable??!1;if("$ref"in H){let _=h(H.$ref);if(_&&Y.has(_))return`z.lazy(() => ${Y.get(_)})`;let L=l(H.$ref,J);if(L)return v(L,J,Y,X);return"z.unknown()"}let $=H,U=()=>{if("nullable"in $&&$.nullable===!0)return!0;if(Array.isArray($.type)&&$.type.includes("null"))return!0;return!1},W=(_)=>{if(U())return`${_}.nullable()`;return _},A=(()=>{if(Array.isArray($.type))return $.type.filter((L)=>L!=="null")[0];return $.type})();if($.allOf){let _=$.allOf.map((L)=>v(L,J,Y,X));if(_.length===0)return"z.unknown()";if(_.length===1)return W(_[0]);return W(`z.intersection(${_.join(", ")})`)}if($.oneOf||$.anyOf){let _=($.oneOf||$.anyOf||[]).map((L)=>v(L,J,Y,X));if(_.length===0)return"z.unknown()";if(_.length===1)return W(_[0]);return W(`z.union([${_.join(", ")}])`)}if($.enum){let _=$.enum.map((L)=>JSON.stringify(L));if(_.length===1)return W(`z.literal(${_[0]})`);return W(`z.enum([${_.join(", ")}])`)}if(A==="string"){if($.format==="email"){let L="z.email()";if($.minLength!==void 0)L+=`.min(${$.minLength})`;if($.maxLength!==void 0)L+=`.max(${$.maxLength})`;return W(L)}if($.format==="uri"||$.format==="url"){let L="z.url()";if($.minLength!==void 0)L+=`.min(${$.minLength})`;if($.maxLength!==void 0)L+=`.max(${$.maxLength})`;return W(L)}if($.format==="uuid")return W("z.uuid()");if($.format==="date-time")return W("z.iso.datetime()");let _="z.string()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;if($.pattern)_+=`.regex(/${$.pattern}/)`;return W(_)}if(A==="number"||A==="integer"){let _=A==="integer"?"z.int()":"z.number()";if($.minimum!==void 0)_+=`.min(${$.minimum})`;if($.maximum!==void 0)_+=`.max(${$.maximum})`;if($.exclusiveMinimum!==void 0)_+=`.gt(${$.exclusiveMinimum})`;if($.exclusiveMaximum!==void 0)_+=`.lt(${$.exclusiveMaximum})`;return W(_)}if(A==="boolean")return W("z.boolean()");if(A==="array"){if("items"in $&&$.items){let L=`z.array(${v($.items,J,Y,X)})`;if($.minItems!==void 0)L+=`.min(${$.minItems})`;if($.maxItems!==void 0)L+=`.max(${$.maxItems})`;return W(L)}return W("z.array(z.unknown())")}if(A==="object"||$.properties){let _=new Set($.required||[]),L=[];if($.properties)for(let[G,K]of Object.entries($.properties)){let D=v(K,J,Y,X),B=_.has(G),V=!1;if("$ref"in K){let F=l(K.$ref,J);if(F)V=F.default!==void 0}else V=K.default!==void 0;let x=D;if(!B&&!(Q&&V))x+=".optional()";L.push(`${w(G)}: ${x}`)}let M=L.length>0?`z.object({
45
+ }`}function _H(H){return H.replace(/^\.\//,"")}function l(H,$){if(!H.startsWith("#/"))return null;let Y=H.slice(2).split("/"),X=$;for(let Q of Y)if(X&&typeof X==="object"&&Q in X)X=X[Q];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function h(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function yH(H){if(H==="default")return!0;let $=parseInt(H,10);return $>=400&&$<600}function v(H,$,Y,X){let Q=X?.defaultNonNullable??!1;if("$ref"in H){let _=h(H.$ref);if(_&&Y.has(_))return`z.lazy(() => ${Y.get(_)})`;let L=l(H.$ref,$);if(L)return v(L,$,Y,X);return"z.unknown()"}let J=H,U=()=>{if("nullable"in J&&J.nullable===!0)return!0;if(Array.isArray(J.type)&&J.type.includes("null"))return!0;return!1},W=(_)=>{if(U())return`${_}.nullable()`;return _},A=(()=>{if(Array.isArray(J.type))return J.type.filter((L)=>L!=="null")[0];return J.type})();if(J.allOf){let _=J.allOf.map((L)=>v(L,$,Y,X));if(_.length===0)return"z.unknown()";if(_.length===1)return W(_[0]);return W(`z.intersection(${_.join(", ")})`)}if(J.oneOf||J.anyOf){let _=(J.oneOf||J.anyOf||[]).map((L)=>v(L,$,Y,X));if(_.length===0)return"z.unknown()";if(_.length===1)return W(_[0]);return W(`z.union([${_.join(", ")}])`)}if(J.enum){let _=J.enum.map((L)=>JSON.stringify(L));if(_.length===1)return W(`z.literal(${_[0]})`);return W(`z.enum([${_.join(", ")}])`)}if(A==="string"){if(J.format==="email"){let L="z.email()";if(J.minLength!==void 0)L+=`.min(${J.minLength})`;if(J.maxLength!==void 0)L+=`.max(${J.maxLength})`;return W(L)}if(J.format==="uri"||J.format==="url"){let L="z.url()";if(J.minLength!==void 0)L+=`.min(${J.minLength})`;if(J.maxLength!==void 0)L+=`.max(${J.maxLength})`;return W(L)}if(J.format==="uuid")return W("z.uuid()");if(J.format==="date-time")return W("z.iso.datetime()");let _="z.string()";if(J.minLength!==void 0)_+=`.min(${J.minLength})`;if(J.maxLength!==void 0)_+=`.max(${J.maxLength})`;if(J.pattern)_+=`.regex(/${J.pattern}/)`;return W(_)}if(A==="number"||A==="integer"){let _=A==="integer"?"z.int()":"z.number()";if(J.minimum!==void 0)_+=`.min(${J.minimum})`;if(J.maximum!==void 0)_+=`.max(${J.maximum})`;if(J.exclusiveMinimum!==void 0)_+=`.gt(${J.exclusiveMinimum})`;if(J.exclusiveMaximum!==void 0)_+=`.lt(${J.exclusiveMaximum})`;return W(_)}if(A==="boolean")return W("z.boolean()");if(A==="array"){if("items"in J&&J.items){let L=`z.array(${v(J.items,$,Y,X)})`;if(J.minItems!==void 0)L+=`.min(${J.minItems})`;if(J.maxItems!==void 0)L+=`.max(${J.maxItems})`;return W(L)}return W("z.array(z.unknown())")}if(A==="object"||J.properties){let _=new Set(J.required||[]),L=[];if(J.properties)for(let[G,V]of Object.entries(J.properties)){let K=v(V,$,Y,X),x=_.has(G),B=!1;if("$ref"in V){let F=l(V.$ref,$);if(F)B=F.default!==void 0}else B=V.default!==void 0;let D=K;if(!x&&!(Q&&B))D+=".optional()";L.push(`${k(G)}: ${D}`)}let M=L.length>0?`z.object({
46
46
  ${L.join(`,
47
47
  `)}
48
- })`:"z.object({})";if($.additionalProperties===!0)M+=".passthrough()";else if(typeof $.additionalProperties==="object"&&$.additionalProperties!==null)M+=".passthrough()";return W(M)}return"z.unknown()"}function u(H,J,Y){let X=Y?.defaultNonNullable??!1;if("$ref"in H){if(h(H.$ref))return"z.ZodLazy<z.ZodTypeAny>";let _=l(H.$ref,J);if(_)return u(_,J,Y);return"z.ZodUnknown"}let Q=H,$=()=>{if("nullable"in Q&&Q.nullable===!0)return!0;if(Array.isArray(Q.type)&&Q.type.includes("null"))return!0;return!1},U=(A)=>{if($())return`z.ZodNullable<${A}>`;return A},Z=(()=>{if(Array.isArray(Q.type))return Q.type.filter((_)=>_!=="null")[0];return Q.type})();if(Q.allOf){let A=Q.allOf.map((L)=>u(L,J,Y));if(A.length===0)return"z.ZodUnknown";if(A.length===1)return U(A[0]);let _=A[0];for(let L=1;L<A.length;L++)_=`z.ZodIntersection<${_}, ${A[L]}>`;return U(_)}if(Q.oneOf||Q.anyOf){let A=(Q.oneOf||Q.anyOf||[]).map((_)=>u(_,J,Y));if(A.length===0)return"z.ZodUnknown";if(A.length===1)return U(A[0]);return U(`z.ZodUnion<[${A.join(", ")}]>`)}if(Q.enum){let A=Q.enum.map((_)=>JSON.stringify(_));if(A.length===1)return U(`z.ZodLiteral<${A[0]}>`);return U(`z.ZodEnum<[${A.join(", ")}]>`)}if(Z==="string")return U("z.ZodString");if(Z==="number"||Z==="integer")return U("z.ZodNumber");if(Z==="boolean")return U("z.ZodBoolean");if(Z==="array"){if("items"in Q&&Q.items){let A=u(Q.items,J,Y);return U(`z.ZodArray<${A}>`)}return U("z.ZodArray<z.ZodUnknown>")}if(Z==="object"||Q.properties){let A=new Set(Q.required||[]),_=[];if(Q.properties)for(let[M,G]of Object.entries(Q.properties)){let K=u(G,J,Y),D=A.has(M),B=!1;if("$ref"in G){let x=l(G.$ref,J);if(x)B=x.default!==void 0}else B=G.default!==void 0;let V=K;if(!D&&!(X&&B))V=`z.ZodOptional<${K}>`;_.push(`${w(M)}: ${V}`)}let L=_.length>0?`z.ZodObject<{ ${_.join("; ")} }>`:"z.ZodObject<Record<string, never>>";return U(L)}return"z.ZodUnknown"}function fH(H,J){let Y=new Set,X=new Set,Q=new Set,$={get:{},post:{},put:{},delete:{},patch:{}},U=J?.convertCase??"camel",W=(A,_)=>{if("$ref"in A){let M=h(A.$ref);if(M)_.add(M);return}let L=A;if(L.allOf)L.allOf.forEach((M)=>{W(M,_)});if(L.anyOf)L.anyOf.forEach((M)=>{W(M,_)});if(L.oneOf)L.oneOf.forEach((M)=>{W(M,_)});if(L.properties)Object.values(L.properties).forEach((M)=>{W(M,_)});if(L.type==="array"&&"items"in L&&L.items)W(L.items,_)},Z=(A)=>{if("$ref"in A)return h(A.$ref);let L=A.content?.["application/json"];if(L?.schema&&"$ref"in L.schema)return h(L.schema.$ref);return null};if(H.paths)for(let[A,_]of Object.entries(H.paths)){if(!_)continue;let L=["get","post","put","delete","patch"];for(let M of L){let G=_[M];if(!G)continue;let K=A.replace(/\{([^}]+)\}/g,(x,F)=>{return`{${N(F,U)}}`}),D=G.operationId?N(G.operationId,U):null,B=null;if(G.requestBody)if(B=Z(G.requestBody),"$ref"in G.requestBody){let x=h(G.requestBody.$ref);if(x)Y.add(x)}else{let F=G.requestBody.content?.["application/json"];if(F?.schema)W(F.schema,Y)}let V={schemaName:B,operationId:D};if($[M][K]=V,D)$[M][D]=V;if(G.responses)for(let[x,F]of Object.entries(G.responses)){let I=yH(x);if("$ref"in F){let P=h(F.$ref);if(P)if(I)Q.add(P);else X.add(P)}else if("content"in F){let O=F.content?.["application/json"];if(O?.schema)if(I)W(O.schema,Q);else W(O.schema,X)}}}}return{requestSchemaNames:Y,responseSchemaNames:X,errorSchemaNames:Q,pathMappings:$}}function LH(H,J,Y){let{requestSchemaNames:X,responseSchemaNames:Q,errorSchemaNames:$,pathMappings:U}=fH(H,Y),W={},Z={},A={},_=new Map;if(H.components?.schemas)for(let L of Object.keys(H.components.schemas))_.set(L,`_${L}`);if(H.components?.schemas)for(let[L,M]of Object.entries(H.components.schemas)){if(!M)continue;let G=Y?.requestDefaultNonNullable??!1,K=Y?.responseDefaultNonNullable??!0,D=X.has(L),B=Q.has(L),V=$.has(L),x=M;if(D)W[L]={code:v(x,H,_,{defaultNonNullable:G}),type:u(x,H,{defaultNonNullable:G})};if(B)Z[L]={code:v(x,H,_,{defaultNonNullable:K}),type:u(x,H,{defaultNonNullable:K})};if(V)A[L]={code:v(x,H,_,{defaultNonNullable:K}),type:u(x,H,{defaultNonNullable:K})}}return{requestSchemas:W,responseSchemas:Z,errorSchemas:A,pathMappings:U}}function vH(H,J){let Y={};for(let[$,U]of Object.entries(H)){let W=_H($);Y[W]=LH(U,W,J)}let X=['import { z } from "zod";',""];for(let[$,U]of Object.entries(Y)){let W=$.replace(/[^a-zA-Z0-9]/g,"_");if(Object.keys(U.requestSchemas).length>0){X.push(`// Request schemas for ${$}`);for(let[Z,A]of Object.entries(U.requestSchemas))X.push(`const ${W}_request_${Z} = ${A.code};`);X.push("")}if(Object.keys(U.responseSchemas).length>0){X.push(`// Response schemas for ${$}`);for(let[Z,A]of Object.entries(U.responseSchemas))X.push(`const ${W}_response_${Z} = ${A.code};`);X.push("")}if(Object.keys(U.errorSchemas).length>0){X.push(`// Error schemas for ${$}`);for(let[Z,A]of Object.entries(U.errorSchemas))X.push(`const ${W}_error_${Z} = ${A.code};`);X.push("")}}X.push("// Exported schemas");for(let[$,U]of Object.entries(Y)){let W=$.replace(/[^a-zA-Z0-9]/g,"_"),Z=Object.keys(U.requestSchemas).map((M)=>` ${w(M)}: ${W}_request_${M}`).join(`,
49
- `);X.push(`export const ${W}_requestSchemas = {`),X.push(Z||""),X.push("};"),X.push("");let A=Object.keys(U.responseSchemas).map((M)=>` ${w(M)}: ${W}_response_${M}`).join(`,
50
- `);X.push(`export const ${W}_responseSchemas = {`),X.push(A||""),X.push("};"),X.push("");let _=Object.keys(U.errorSchemas).map((M)=>` ${w(M)}: ${W}_error_${M}`).join(`,
51
- `);X.push(`export const ${W}_errorSchemas = {`),X.push(_||""),X.push("};"),X.push("");let L=["post","put","patch","delete"];for(let M of L){let G=[],K=U.pathMappings[M];for(let[D,B]of Object.entries(K))if(B.schemaName&&U.requestSchemas[B.schemaName])G.push(` ${w(D)}: ${W}_request_${B.schemaName}`);if(G.length>0)X.push(`export const ${W}_${M}PathSchemas = {`),X.push(G.join(`,
52
- `)),X.push("};"),X.push("");else X.push(`export const ${W}_${M}PathSchemas = {};`),X.push("")}}let Q=Object.keys(Y);if(Q.length===1){let $=Q[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 Q){let U=$.replace(/[^a-zA-Z0-9]/g,"_");X.push(` ${w($)}: {`),X.push(` request: ${U}_requestSchemas,`),X.push(` response: ${U}_responseSchemas,`),X.push(` error: ${U}_errorSchemas,`),X.push(" },")}if(X.push("};"),Q.length>0){let U=Q[0].replace(/[^a-zA-Z0-9]/g,"_");X.push(""),X.push("// Default server exports (first server)"),X.push(`export const requestSchemas = ${U}_requestSchemas;`),X.push(`export const responseSchemas = ${U}_responseSchemas;`),X.push(`export const errorSchemas = ${U}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings (first server)"),X.push(`export const postPathSchemas = ${U}_postPathSchemas;`),X.push(`export const putPathSchemas = ${U}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${U}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${U}_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(`
53
- `)}function uH(H,J){let Y={};for(let[Q,$]of Object.entries(H)){let U=_H(Q);Y[U]=LH($,U,J)}let X=['import "@devup-api/zod";','import type { z } from "zod";',"",'declare module "@devup-api/zod" {'];for(let[Q,$]of Object.entries(Y)){if(Object.keys($.requestSchemas).length>0){X.push(" interface DevupZodRequestSchemas {"),X.push(` ${w(Q)}: {`);for(let[U,W]of Object.entries($.requestSchemas))X.push(` ${w(U)}: ${W.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.responseSchemas).length>0){X.push(" interface DevupZodResponseSchemas {"),X.push(` ${w(Q)}: {`);for(let[U,W]of Object.entries($.responseSchemas))X.push(` ${w(U)}: ${W.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.errorSchemas).length>0){X.push(" interface DevupZodErrorSchemas {"),X.push(` ${w(Q)}: {`);for(let[U,W]of Object.entries($.errorSchemas))X.push(` ${w(U)}: ${W.type};`);X.push(" };"),X.push(" }"),X.push("")}}return X.push("}"),X.join(`
48
+ })`:"z.object({})";if(J.additionalProperties===!0)M+=".passthrough()";else if(typeof J.additionalProperties==="object"&&J.additionalProperties!==null)M+=".passthrough()";return W(M)}return"z.unknown()"}function u(H,$,Y){let X=Y?.defaultNonNullable??!1;if("$ref"in H){if(h(H.$ref))return"z.ZodLazy<z.ZodTypeAny>";let _=l(H.$ref,$);if(_)return u(_,$,Y);return"z.ZodUnknown"}let Q=H,J=()=>{if("nullable"in Q&&Q.nullable===!0)return!0;if(Array.isArray(Q.type)&&Q.type.includes("null"))return!0;return!1},U=(A)=>{if(J())return`z.ZodNullable<${A}>`;return A},Z=(()=>{if(Array.isArray(Q.type))return Q.type.filter((_)=>_!=="null")[0];return Q.type})();if(Q.allOf){let A=Q.allOf.map((L)=>u(L,$,Y));if(A.length===0)return"z.ZodUnknown";if(A.length===1)return U(A[0]);let _=A[0];for(let L=1;L<A.length;L++)_=`z.ZodIntersection<${_}, ${A[L]}>`;return U(_)}if(Q.oneOf||Q.anyOf){let A=(Q.oneOf||Q.anyOf||[]).map((_)=>u(_,$,Y));if(A.length===0)return"z.ZodUnknown";if(A.length===1)return U(A[0]);return U(`z.ZodUnion<[${A.join(", ")}]>`)}if(Q.enum){let A=Q.enum.map((_)=>JSON.stringify(_));if(A.length===1)return U(`z.ZodLiteral<${A[0]}>`);return U(`z.ZodEnum<[${A.join(", ")}]>`)}if(Z==="string")return U("z.ZodString");if(Z==="number"||Z==="integer")return U("z.ZodNumber");if(Z==="boolean")return U("z.ZodBoolean");if(Z==="array"){if("items"in Q&&Q.items){let A=u(Q.items,$,Y);return U(`z.ZodArray<${A}>`)}return U("z.ZodArray<z.ZodUnknown>")}if(Z==="object"||Q.properties){let A=new Set(Q.required||[]),_=[];if(Q.properties)for(let[M,G]of Object.entries(Q.properties)){let V=u(G,$,Y),K=A.has(M),x=!1;if("$ref"in G){let D=l(G.$ref,$);if(D)x=D.default!==void 0}else x=G.default!==void 0;let B=V;if(!K&&!(X&&x))B=`z.ZodOptional<${V}>`;_.push(`${k(M)}: ${B}`)}let L=_.length>0?`z.ZodObject<{ ${_.join("; ")} }>`:"z.ZodObject<Record<string, never>>";return U(L)}return"z.ZodUnknown"}function fH(H,$){let Y=new Set,X=new Set,Q=new Set,J={get:{},post:{},put:{},delete:{},patch:{}},U=$?.convertCase??"camel",W=(A,_)=>{if("$ref"in A){let M=h(A.$ref);if(M)_.add(M);return}let L=A;if(L.allOf)L.allOf.forEach((M)=>{W(M,_)});if(L.anyOf)L.anyOf.forEach((M)=>{W(M,_)});if(L.oneOf)L.oneOf.forEach((M)=>{W(M,_)});if(L.properties)Object.values(L.properties).forEach((M)=>{W(M,_)});if(L.type==="array"&&"items"in L&&L.items)W(L.items,_)},Z=(A)=>{if("$ref"in A)return h(A.$ref);let L=A.content?.["application/json"];if(L?.schema&&"$ref"in L.schema)return h(L.schema.$ref);return null};if(H.paths)for(let[A,_]of Object.entries(H.paths)){if(!_)continue;let L=["get","post","put","delete","patch"];for(let M of L){let G=_[M];if(!G)continue;let V=A.replace(/\{([^}]+)\}/g,(D,F)=>{return`{${N(F,U)}}`}),K=G.operationId?N(G.operationId,U):null,x=null;if(G.requestBody)if(x=Z(G.requestBody),"$ref"in G.requestBody){let D=h(G.requestBody.$ref);if(D)Y.add(D)}else{let F=G.requestBody.content?.["application/json"];if(F?.schema)W(F.schema,Y)}let B={schemaName:x,operationId:K};if(J[M][V]=B,K)J[M][K]=B;if(G.responses)for(let[D,F]of Object.entries(G.responses)){let R=yH(D);if("$ref"in F){let P=h(F.$ref);if(P)if(R)Q.add(P);else X.add(P)}else if("content"in F){let T=F.content?.["application/json"];if(T?.schema)if(R)W(T.schema,Q);else W(T.schema,X)}}}}return{requestSchemaNames:Y,responseSchemaNames:X,errorSchemaNames:Q,pathMappings:J}}function LH(H,$,Y){let{requestSchemaNames:X,responseSchemaNames:Q,errorSchemaNames:J,pathMappings:U}=fH(H,Y),W={},Z={},A={},_=new Map;if(H.components?.schemas)for(let L of Object.keys(H.components.schemas))_.set(L,`_${L}`);if(H.components?.schemas)for(let[L,M]of Object.entries(H.components.schemas)){if(!M)continue;let G=Y?.requestDefaultNonNullable??!1,V=Y?.responseDefaultNonNullable??!0,K=X.has(L),x=Q.has(L),B=J.has(L),D=M;if(K)W[L]={code:v(D,H,_,{defaultNonNullable:G}),type:u(D,H,{defaultNonNullable:G})};if(x)Z[L]={code:v(D,H,_,{defaultNonNullable:V}),type:u(D,H,{defaultNonNullable:V})};if(B)A[L]={code:v(D,H,_,{defaultNonNullable:V}),type:u(D,H,{defaultNonNullable:V})}}return{requestSchemas:W,responseSchemas:Z,errorSchemas:A,pathMappings:U}}function vH(H,$){let Y={};for(let[J,U]of Object.entries(H)){let W=_H(J);Y[W]=LH(U,W,$)}let X=['import { z } from "zod";',""];for(let[J,U]of Object.entries(Y)){let W=J.replace(/[^a-zA-Z0-9]/g,"_");if(Object.keys(U.requestSchemas).length>0){X.push(`// Request schemas for ${J}`);for(let[Z,A]of Object.entries(U.requestSchemas))X.push(`const ${W}_request_${Z} = ${A.code};`);X.push("")}if(Object.keys(U.responseSchemas).length>0){X.push(`// Response schemas for ${J}`);for(let[Z,A]of Object.entries(U.responseSchemas))X.push(`const ${W}_response_${Z} = ${A.code};`);X.push("")}if(Object.keys(U.errorSchemas).length>0){X.push(`// Error schemas for ${J}`);for(let[Z,A]of Object.entries(U.errorSchemas))X.push(`const ${W}_error_${Z} = ${A.code};`);X.push("")}}X.push("// Exported schemas");for(let[J,U]of Object.entries(Y)){let W=J.replace(/[^a-zA-Z0-9]/g,"_"),Z=Object.keys(U.requestSchemas).map((M)=>` ${k(M)}: ${W}_request_${M}`).join(`,
49
+ `);X.push(`export const ${W}_requestSchemas = {`),X.push(Z||""),X.push("};"),X.push("");let A=Object.keys(U.responseSchemas).map((M)=>` ${k(M)}: ${W}_response_${M}`).join(`,
50
+ `);X.push(`export const ${W}_responseSchemas = {`),X.push(A||""),X.push("};"),X.push("");let _=Object.keys(U.errorSchemas).map((M)=>` ${k(M)}: ${W}_error_${M}`).join(`,
51
+ `);X.push(`export const ${W}_errorSchemas = {`),X.push(_||""),X.push("};"),X.push("");let L=["post","put","patch","delete"];for(let M of L){let G=[],V=U.pathMappings[M];for(let[K,x]of Object.entries(V))if(x.schemaName&&U.requestSchemas[x.schemaName])G.push(` ${k(K)}: ${W}_request_${x.schemaName}`);if(G.length>0)X.push(`export const ${W}_${M}PathSchemas = {`),X.push(G.join(`,
52
+ `)),X.push("};"),X.push("");else X.push(`export const ${W}_${M}PathSchemas = {};`),X.push("")}}let Q=Object.keys(Y);if(Q.length===1){let J=Q[0].replace(/[^a-zA-Z0-9]/g,"_");X.push("export const schemas = {"),X.push(` request: ${J}_requestSchemas,`),X.push(` response: ${J}_responseSchemas,`),X.push(` error: ${J}_errorSchemas,`),X.push("};"),X.push(""),X.push(`export const requestSchemas = ${J}_requestSchemas;`),X.push(`export const responseSchemas = ${J}_responseSchemas;`),X.push(`export const errorSchemas = ${J}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings"),X.push(`export const postPathSchemas = ${J}_postPathSchemas;`),X.push(`export const putPathSchemas = ${J}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${J}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${J}_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 J of Q){let U=J.replace(/[^a-zA-Z0-9]/g,"_");X.push(` ${k(J)}: {`),X.push(` request: ${U}_requestSchemas,`),X.push(` response: ${U}_responseSchemas,`),X.push(` error: ${U}_errorSchemas,`),X.push(" },")}if(X.push("};"),Q.length>0){let U=Q[0].replace(/[^a-zA-Z0-9]/g,"_");X.push(""),X.push("// Default server exports (first server)"),X.push(`export const requestSchemas = ${U}_requestSchemas;`),X.push(`export const responseSchemas = ${U}_responseSchemas;`),X.push(`export const errorSchemas = ${U}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings (first server)"),X.push(`export const postPathSchemas = ${U}_postPathSchemas;`),X.push(`export const putPathSchemas = ${U}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${U}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${U}_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(`
53
+ `)}function uH(H,$){let Y={};for(let[Q,J]of Object.entries(H)){let U=_H(Q);Y[U]=LH(J,U,$)}let X=['import "@devup-api/zod";','import type { z } from "zod";',"",'declare module "@devup-api/zod" {'];for(let[Q,J]of Object.entries(Y)){if(Object.keys(J.requestSchemas).length>0){X.push(" interface DevupZodRequestSchemas {"),X.push(` ${k(Q)}: {`);for(let[U,W]of Object.entries(J.requestSchemas))X.push(` ${k(U)}: ${W.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys(J.responseSchemas).length>0){X.push(" interface DevupZodResponseSchemas {"),X.push(` ${k(Q)}: {`);for(let[U,W]of Object.entries(J.responseSchemas))X.push(` ${k(U)}: ${W.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys(J.errorSchemas).length>0){X.push(" interface DevupZodErrorSchemas {"),X.push(` ${k(Q)}: {`);for(let[U,W]of Object.entries(J.errorSchemas))X.push(` ${k(U)}: ${W.type};`);X.push(" };"),X.push(" }"),X.push("")}}return X.push("}"),X.join(`
54
54
  `)}
package/dist/index.js CHANGED
@@ -1,54 +1,54 @@
1
- import{toCamel as XH,toPascal as YH,toSnake as $H}from"@devup-api/utils";function N(H,W="camel"){switch(W){case"snake":return $H(H);case"camel":return XH(H);case"pascal":return YH(H);case"maintain":return H;default:return H}}function jH(H,W){let Y=W?.convertCase??"camel",X={};for(let[Q,$]of Object.entries(H)){let U={};for(let[J,Z]of Object.entries($.paths??{})){if(!Z)continue;for(let A of["get","post","put","delete","patch"]){let _=Z[A];if(!_)continue;let L=J.replace(/\{([^}]+)\}/g,(M,G)=>{return`{${N(G,Y)}}`});if(_.operationId)U[N(_.operationId,Y)]={method:A.toUpperCase(),url:L};U[L]={method:A.toUpperCase(),url:L}}}X[Q]=U}return X}var JH=/^devup:([a-zA-Z][a-zA-Z0-9_-]*):(\w+)$/,WH=["one","create","edit","fix"];function QH(H){let W=H.match(JH);if(!W)return null;let[,Y,X]=W,Q=X;if(!WH.includes(Q))return null;return{raw:H,name:Y,mode:Q}}function UH(H){let W=[],Y=/\{([^}]+)\}/g,X=Y.exec(H);while(X!==null)W.push(X[1]),X=Y.exec(H);return W}function _H(H){switch(H){case"get":return"one";case"post":return"create";case"put":return"edit";case"patch":return"fix";default:return null}}function LH(H,W){let Y=H.split("/");if(Y.length!==4||Y[1]!=="components"||Y[2]!=="schemas")return null;let X=Y[3];return W.components?.schemas?.[X]??null}function AH(H,W){let Y;if("$ref"in H){let $=LH(H.$ref,W);if(!$)return[];Y=$}else Y=H;if(Y.type!=="object"||!Y.properties)return[];let X=new Set(Y.required??[]),Q=[];for(let[$,U]of Object.entries(Y.properties)){if("$ref"in U)continue;let J=U,Z={name:$,type:J.type??"string",required:X.has($)};if(J.format)Z.format=J.format;if(J.description)Z.description=J.description;if(J.minimum!==void 0)Z.minimum=J.minimum;if(J.maximum!==void 0)Z.maximum=J.maximum;if(J.minLength!==void 0)Z.minLength=J.minLength;if(J.maxLength!==void 0)Z.maxLength=J.maxLength;if(J.pattern)Z.pattern=J.pattern;if(J.enum)Z.enum=J.enum;Q.push(Z)}return Q}function ZH(H,W){let Y=H.requestBody;if(!Y)return[];let X;if("$ref"in Y)return[];else X=Y;let Q=X.content?.["application/json"];if(!Q?.schema)return[];return AH(Q.schema,W)}function MH(H){let W=[];if(!H.paths)return W;let Y=["get","post","put","patch","delete"];for(let[X,Q]of Object.entries(H.paths)){if(!Q)continue;for(let $ of Y){let U=Q[$];if(!U)continue;let J=[];if(U.tags)for(let Z of U.tags){let A=QH(Z);if(A){let _=_H($);if(_&&A.mode===_)J.push(A)}}if(J.length>0)W.push({method:$,path:X,operationId:U.operationId,tags:J,params:UH(X),operation:U})}}return W}function GH(H,W){let Y={};for(let Q of H)for(let $ of Q.tags){if(!Y[$.name])Y[$.name]={name:$.name};if(!Q.operationId){console.warn(`Skipping ${Q.method.toUpperCase()} ${Q.path} - missing operationId`);continue}let U=["post","put","patch"].includes(Q.method)?ZH(Q.operation,W):void 0,J={method:Q.method,operationId:Q.operationId,fields:U},Z=Y[$.name];switch($.mode){case"one":Z.one=J;break;case"create":Z.create=J;break;case"edit":Z.edit=J;break;case"fix":Z.fix=J;break}}let X={};for(let[Q,$]of Object.entries(Y))if($.one&&$.create)X[Q]=$;return X}function KH(H){let W=MH(H);return GH(W,H)}function l(H){let W={};for(let Y of Object.values(H)){let X=KH(Y);Object.assign(W,X)}return W}function m(H){return H.split(/[-_]/).map((W)=>W.charAt(0).toUpperCase()+W.slice(1)).join("")}function r(H){return H.replace(/([A-Z])/g," $1").replace(/[-_]/g," ").trim().split(" ").map((W)=>W.charAt(0).toUpperCase()+W.slice(1).toLowerCase()).join(" ")}function VH(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 W=[];if(H.required)W.push("required: true");if(H.minLength!==void 0)W.push(`minLength: ${H.minLength}`);if(H.maxLength!==void 0)W.push(`maxLength: ${H.maxLength}`);if(H.minimum!==void 0)W.push(`min: ${H.minimum}`);if(H.maximum!==void 0)W.push(`max: ${H.maximum}`);if(H.pattern)W.push(`pattern: /${H.pattern}/`);if(H.type==="number"||H.type==="integer")W.push("valueAsNumber: true");return W.length>0?`{ ${W.join(", ")} }`:""}function xH(H,W){let Y=[],X=VH(H),Q=r(H.name),$=BH(H),U=$?`register('${H.name}', ${$})`:`register('${H.name}')`;if(H.enum&&H.enum.length>0){Y.push(`${W}<div>`),Y.push(`${W} <label htmlFor="${H.name}">${Q}</label>`),Y.push(`${W} <select id="${H.name}" {...${U}}>`),Y.push(`${W} <option value="">Select...</option>`);for(let J of H.enum)Y.push(`${W} <option value="${J}">${r(J)}</option>`);return Y.push(`${W} </select>`),Y.push(`${W} {errors.${H.name} && <span>Invalid</span>}`),Y.push(`${W}</div>`),Y}if(H.type==="boolean")return Y.push(`${W}<div>`),Y.push(`${W} <label>`),Y.push(`${W} <input type="checkbox" {...${U}} />`),Y.push(`${W} ${Q}`),Y.push(`${W} </label>`),Y.push(`${W} {errors.${H.name} && <span>Invalid</span>}`),Y.push(`${W}</div>`),Y;if(Y.push(`${W}<div>`),Y.push(`${W} <label htmlFor="${H.name}">${Q}</label>`),Y.push(`${W} <input`),Y.push(`${W} id="${H.name}"`),Y.push(`${W} type="${X}"`),Y.push(`${W} {...${U}}`),H.description)Y.push(`${W} placeholder="${H.description}"`);return Y.push(`${W} />`),Y.push(`${W} {errors.${H.name} && <span>${H.required?"Required":"Invalid"}</span>}`),Y.push(`${W}</div>`),Y}function DH(H,W){let Y=[],X=`${H}Fields`;if(Y.push(`function ${X}() {`),Y.push(" const { register, formState: { errors } } = useFormContext();"),Y.push(""),Y.push(" return ("),Y.push(" <>"),W.length>0)for(let Q of W){let $=xH(Q," ");Y.push(...$)}else Y.push(" {/* No fields defined in OpenAPI schema */}");return Y.push(""),Y.push(' <button type="submit">Submit</button>'),Y.push(" </>"),Y.push(" );"),Y.push("}"),Y}function EH(H,W){let Y=[],X=`${m(H)}Crud`,Q=`${X}Fields`,$=W.edit??W.fix,U=$?.method??"put",J=$?.operationId;if(Y.push(`export function ${X}({`),Y.push(" apiClient,"),Y.push(" params,"),Y.push(" onSuccess,"),Y.push(" onError,"),Y.push("}) {"),Y.push(" const isEdit = !!params;"),Y.push(""),Y.push(" return ("),Y.push(" <ApiForm"),Y.push(" api={apiClient}"),Y.push(` method={isEdit ? '${U}' : 'post'}`),J)Y.push(` path={isEdit ? '${J}' : '${W.create.operationId}'}`);else Y.push(` path={'${W.create.operationId}'}`);return Y.push(" requestOptions={isEdit ? { params } : undefined}"),Y.push(" fetchDefaultValues={isEdit ? {"),Y.push(` path: '${W.one.operationId}',`),Y.push(" options: { params },"),Y.push(" } : undefined}"),Y.push(" onSuccess={onSuccess}"),Y.push(" onError={onError}"),Y.push(" >"),Y.push(` <${Q} />`),Y.push(" </ApiForm>"),Y.push(" );"),Y.push("}"),Y}function yH(H){let W=l(H),Y=[];Y.push("// Auto-generated CRUD components from OpenAPI specs"),Y.push("// Do not edit this file directly"),Y.push("'use client';"),Y.push(""),Y.push("import { ApiForm, useFormContext } from '@devup-api/hookform';"),Y.push("");for(let[X,Q]of Object.entries(W)){let $=`${m(X)}Crud`,U=Q.create.fields??[];Y.push("// ============================================"),Y.push(`// ${$}`),Y.push("// ============================================"),Y.push("");let J=DH($,U);Y.push(...J),Y.push("");let Z=EH(X,Q);Y.push(...Z),Y.push("")}Y.push("export default {");for(let X of Object.keys(W)){let Q=`${m(X)}Crud`;Y.push(` ${X}: ${Q},`)}return Y.push("};"),Y.join(`
2
- `)}function fH(H){let W=l(H),Y=Object.keys(W),X=[];if(X.push("import '@devup-api/ui'"),X.push(""),Y.length>0){X.push("declare module '@devup-api/ui' {"),X.push(" interface DevupCrudApiNames {");for(let Q of Y)X.push(` ${Q}: 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(`
3
- `)}import{toPascal as wH}from"@devup-api/utils";function FH(H){if("nullable"in H&&H.nullable===!0)return!0;if(Array.isArray(H.type)&&H.type.includes("null"))return!0;return!1}function PH(H){return H.find((W)=>W!=="null")}function d(H,W){if(!H.startsWith("#/"))return null;let Y=H.slice(2).split("/"),X=W;for(let Q of Y)if(X&&typeof X==="object"&&Q in X)X=X[Q];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function R(H,W,Y){let X=Y?.defaultNonNullable??!1;if("$ref"in H){let J=d(H.$ref,W);if(J)return R(J,W,Y);return{type:"unknown",default:void 0}}let Q=H;if(Q.allOf){let J=Q.allOf.map((Z)=>R(Z,W,Y));return{type:J.length>0?J.map((Z)=>b(Z.type)).join(" & "):"unknown",default:Q.default}}if(Q.anyOf||Q.oneOf){let J=(Q.anyOf||Q.oneOf||[]).map((Z)=>R(Z,W,Y));return{type:J.length>0?`(${J.map((Z)=>b(Z.type)).join(" | ")})`:"unknown",default:Q.default}}let $=FH(Q);if(Q.enum){let J=Q.enum.map((Z)=>`"${String(Z)}"`).join(" | ");return{type:$?`${J} | null`:J,default:Q.default}}let U=Array.isArray(Q.type)?PH(Q.type):Q.type;if(U==="string")return{type:$?"string | null":"string",default:Q.default};if(U==="number"||U==="integer")return{type:$?"number | null":"number",default:Q.default};if(U==="boolean")return{type:$?"boolean | null":"boolean",default:Q.default};if(U==="array"){let J="items"in Q?Q.items:void 0;if(J){let Z=R(J,W,Y);return{type:$?{__isArray:!0,items:Z.type,__nullable:!0}:{__isArray:!0,items:Z.type},default:Q.default}}return{type:$?"unknown[] | null":"unknown[]",default:Q.default}}if(U==="object"||Q.properties){let J={},Z=Q.required||[];if(Q.properties)for(let[A,_]of Object.entries(Q.properties)){let L=R(_,W,Y),M=!1;if("$ref"in _){let K=d(_.$ref,W);if(K)M=K.default!==void 0}else M=_.default!==void 0;let G=Z.includes(A);if(X&&M&&!G)J[A]=L;else if(!G)J[`${A}?`]=L;else J[A]=L}if(Q.additionalProperties){if(Q.additionalProperties===!0)J["[key: string]"]={type:"unknown",default:void 0};else if(typeof Q.additionalProperties==="object"){let A=R(Q.additionalProperties,W,Y);J["[key: string]"]={type:A.type,default:A.default}}}return{type:$?{...J,__nullable:!0}:{...J},default:Q.default}}return{type:"unknown",default:void 0}}function n(H){return typeof H==="object"&&H!==null&&"type"in H&&"in"in H&&"name"in H}function s(H){let W=Object.entries(H);if(W.length===0)return!0;return W.every(([Y,X])=>{if(Y.endsWith("?"))return!0;if(n(X))return X.required===!1;if(o(X))return!1;if(typeof X==="object"&&X!==null&&!Array.isArray(X))return s(X);return!1})}function t(H,W=0){let Y=" ".repeat(W),X=W+1,Q=" ".repeat(X),$=Object.entries(H).map(([U,J])=>{if(typeof J==="string")return`${Q}${U}: ${J}`;if(n(J)){let L=b(J.type,X),G=J.required===!1?`${U}?`:U,K="";if(J.description){if(K+=`${Q}/**
4
- ${Q} * ${J.description}`,typeof J.default<"u")K+=`
5
- ${Q} * @default {${J.default}}`;K=`${K}
1
+ import{toCamel as XH,toPascal as YH,toSnake as $H}from"@devup-api/utils";function N(H,J="camel"){switch(J){case"snake":return $H(H);case"camel":return XH(H);case"pascal":return YH(H);case"maintain":return H;default:return H}}function jH(H,J){let Y=J?.convertCase??"camel",X={};for(let[Q,$]of Object.entries(H)){let U={};for(let[W,Z]of Object.entries($.paths??{})){if(!Z)continue;for(let A of["get","post","put","delete","patch"]){let _=Z[A];if(!_)continue;let L=W.replace(/\{([^}]+)\}/g,(M,G)=>{return`{${N(G,Y)}}`});if(_.operationId)U[N(_.operationId,Y)]={method:A.toUpperCase(),url:L};U[L]={method:A.toUpperCase(),url:L}}}X[Q]=U}return X}var JH=/^devup:([a-zA-Z][a-zA-Z0-9_-]*):(\w+)$/,WH=["one","create","edit","fix"];function QH(H){let J=H.match(JH);if(!J)return null;let[,Y,X]=J,Q=X;if(!WH.includes(Q))return null;return{raw:H,name:Y,mode:Q}}function UH(H){let J=[],Y=/\{([^}]+)\}/g,X=Y.exec(H);while(X!==null)J.push(X[1]),X=Y.exec(H);return J}function _H(H){switch(H){case"get":return"one";case"post":return"create";case"put":return"edit";case"patch":return"fix";default:return null}}function LH(H,J){let Y=H.split("/");if(Y.length!==4||Y[1]!=="components"||Y[2]!=="schemas")return null;let X=Y[3];return J.components?.schemas?.[X]??null}function AH(H,J){let Y;if("$ref"in H){let $=LH(H.$ref,J);if(!$)return[];Y=$}else Y=H;if(Y.type!=="object"||!Y.properties)return[];let X=new Set(Y.required??[]),Q=[];for(let[$,U]of Object.entries(Y.properties)){if("$ref"in U)continue;let W=U,Z={name:$,type:W.type??"string",required:X.has($)};if(W.format)Z.format=W.format;if(W.description)Z.description=W.description;if(W.minimum!==void 0)Z.minimum=W.minimum;if(W.maximum!==void 0)Z.maximum=W.maximum;if(W.minLength!==void 0)Z.minLength=W.minLength;if(W.maxLength!==void 0)Z.maxLength=W.maxLength;if(W.pattern)Z.pattern=W.pattern;if(W.enum)Z.enum=W.enum;Q.push(Z)}return Q}function ZH(H,J){let Y=H.requestBody;if(!Y)return[];let X;if("$ref"in Y)return[];else X=Y;let Q=X.content?.["application/json"];if(!Q?.schema)return[];return AH(Q.schema,J)}function MH(H){let J=[];if(!H.paths)return J;let Y=["get","post","put","patch","delete"];for(let[X,Q]of Object.entries(H.paths)){if(!Q)continue;for(let $ of Y){let U=Q[$];if(!U)continue;let W=[];if(U.tags)for(let Z of U.tags){let A=QH(Z);if(A){let _=_H($);if(_&&A.mode===_)W.push(A)}}if(W.length>0)J.push({method:$,path:X,operationId:U.operationId,tags:W,params:UH(X),operation:U})}}return J}function GH(H,J){let Y={};for(let Q of H)for(let $ of Q.tags){if(!Y[$.name])Y[$.name]={name:$.name};if(!Q.operationId){console.warn(`Skipping ${Q.method.toUpperCase()} ${Q.path} - missing operationId`);continue}let U=["post","put","patch"].includes(Q.method)?ZH(Q.operation,J):void 0,W={method:Q.method,operationId:Q.operationId,fields:U},Z=Y[$.name];switch($.mode){case"one":Z.one=W;break;case"create":Z.create=W;break;case"edit":Z.edit=W;break;case"fix":Z.fix=W;break}}let X={};for(let[Q,$]of Object.entries(Y))if($.one&&$.create)X[Q]=$;return X}function VH(H){let J=MH(H);return GH(J,H)}function l(H){let J={};for(let Y of Object.values(H)){let X=VH(Y);Object.assign(J,X)}return J}function k(H){if(H==="")return H;let J=H.endsWith("?"),Y=J?H.slice(0,-1):H;if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(Y)||Y.includes('"')||Y.includes("'")||Y.includes("`")){let Q=`[\`${Y}\`]`;return J?`${Q}?`:Q}return H}function m(H){return H.split(/[-_]/).map((J)=>J.charAt(0).toUpperCase()+J.slice(1)).join("")}function r(H){return H.replace(/([A-Z])/g," $1").replace(/[-_]/g," ").trim().split(" ").map((J)=>J.charAt(0).toUpperCase()+J.slice(1).toLowerCase()).join(" ")}function BH(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 xH(H){let J=[];if(H.required)J.push("required: true");if(H.minLength!==void 0)J.push(`minLength: ${H.minLength}`);if(H.maxLength!==void 0)J.push(`maxLength: ${H.maxLength}`);if(H.minimum!==void 0)J.push(`min: ${H.minimum}`);if(H.maximum!==void 0)J.push(`max: ${H.maximum}`);if(H.pattern)J.push(`pattern: /${H.pattern}/`);if(H.type==="number"||H.type==="integer")J.push("valueAsNumber: true");return J.length>0?`{ ${J.join(", ")} }`:""}function KH(H,J){let Y=[],X=BH(H),Q=r(H.name),$=xH(H),U=$?`register('${H.name}', ${$})`:`register('${H.name}')`;if(H.enum&&H.enum.length>0){Y.push(`${J}<div>`),Y.push(`${J} <label htmlFor="${H.name}">${Q}</label>`),Y.push(`${J} <select id="${H.name}" {...${U}}>`),Y.push(`${J} <option value="">Select...</option>`);for(let W of H.enum)Y.push(`${J} <option value="${W}">${r(W)}</option>`);return Y.push(`${J} </select>`),Y.push(`${J} {errors.${H.name} && <span>Invalid</span>}`),Y.push(`${J}</div>`),Y}if(H.type==="boolean")return Y.push(`${J}<div>`),Y.push(`${J} <label>`),Y.push(`${J} <input type="checkbox" {...${U}} />`),Y.push(`${J} ${Q}`),Y.push(`${J} </label>`),Y.push(`${J} {errors.${H.name} && <span>Invalid</span>}`),Y.push(`${J}</div>`),Y;if(Y.push(`${J}<div>`),Y.push(`${J} <label htmlFor="${H.name}">${Q}</label>`),Y.push(`${J} <input`),Y.push(`${J} id="${H.name}"`),Y.push(`${J} type="${X}"`),Y.push(`${J} {...${U}}`),H.description)Y.push(`${J} placeholder="${H.description}"`);return Y.push(`${J} />`),Y.push(`${J} {errors.${H.name} && <span>${H.required?"Required":"Invalid"}</span>}`),Y.push(`${J}</div>`),Y}function DH(H,J){let Y=[],X=`${H}Fields`;if(Y.push(`function ${X}() {`),Y.push(" const { register, formState: { errors } } = useFormContext();"),Y.push(""),Y.push(" return ("),Y.push(" <>"),J.length>0)for(let Q of J){let $=KH(Q," ");Y.push(...$)}else Y.push(" {/* No fields defined in OpenAPI schema */}");return Y.push(""),Y.push(' <button type="submit">Submit</button>'),Y.push(" </>"),Y.push(" );"),Y.push("}"),Y}function EH(H,J){let Y=[],X=`${m(H)}Crud`,Q=`${X}Fields`,$=J.edit??J.fix,U=$?.method??"put",W=$?.operationId;if(Y.push(`export function ${X}({`),Y.push(" apiClient,"),Y.push(" params,"),Y.push(" onSuccess,"),Y.push(" onError,"),Y.push("}) {"),Y.push(" const isEdit = !!params;"),Y.push(""),Y.push(" return ("),Y.push(" <ApiForm"),Y.push(" api={apiClient}"),Y.push(` method={isEdit ? '${U}' : 'post'}`),W)Y.push(` path={isEdit ? '${W}' : '${J.create.operationId}'}`);else Y.push(` path={'${J.create.operationId}'}`);return Y.push(" requestOptions={isEdit ? { params } : undefined}"),Y.push(" fetchDefaultValues={isEdit ? {"),Y.push(` path: '${J.one.operationId}',`),Y.push(" options: { params },"),Y.push(" } : undefined}"),Y.push(" onSuccess={onSuccess}"),Y.push(" onError={onError}"),Y.push(" >"),Y.push(` <${Q} />`),Y.push(" </ApiForm>"),Y.push(" );"),Y.push("}"),Y}function vH(H){let J=l(H),Y=[];Y.push("// Auto-generated CRUD components from OpenAPI specs"),Y.push("// Do not edit this file directly"),Y.push("'use client';"),Y.push(""),Y.push("import { ApiForm, useFormContext } from '@devup-api/hookform';"),Y.push("");for(let[X,Q]of Object.entries(J)){let $=`${m(X)}Crud`,U=Q.create.fields??[];Y.push("// ============================================"),Y.push(`// ${$}`),Y.push("// ============================================"),Y.push("");let W=DH($,U);Y.push(...W),Y.push("");let Z=EH(X,Q);Y.push(...Z),Y.push("")}Y.push("export default {");for(let X of Object.keys(J)){let Q=`${m(X)}Crud`;Y.push(` ${X}: ${Q},`)}return Y.push("};"),Y.join(`
2
+ `)}function uH(H){let J=l(H),Y=Object.keys(J),X=[];if(X.push("import '@devup-api/ui'"),X.push(""),Y.length>0){X.push("declare module '@devup-api/ui' {"),X.push(" interface DevupCrudApiNames {");for(let Q of Y)X.push(` ${k(Q)}: 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(`
3
+ `)}import{toPascal as wH}from"@devup-api/utils";function FH(H){if("nullable"in H&&H.nullable===!0)return!0;if(Array.isArray(H.type)&&H.type.includes("null"))return!0;return!1}function PH(H){return H.find((J)=>J!=="null")}function d(H,J){if(!H.startsWith("#/"))return null;let Y=H.slice(2).split("/"),X=J;for(let Q of Y)if(X&&typeof X==="object"&&Q in X)X=X[Q];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function q(H,J,Y){let X=Y?.defaultNonNullable??!1;if("$ref"in H){let W=d(H.$ref,J);if(W)return q(W,J,Y);return{type:"unknown",default:void 0}}let Q=H;if(Q.allOf){let W=Q.allOf.map((Z)=>q(Z,J,Y));return{type:W.length>0?W.map((Z)=>b(Z.type)).join(" & "):"unknown",default:Q.default}}if(Q.anyOf||Q.oneOf){let W=(Q.anyOf||Q.oneOf||[]).map((Z)=>q(Z,J,Y));return{type:W.length>0?`(${W.map((Z)=>b(Z.type)).join(" | ")})`:"unknown",default:Q.default}}let $=FH(Q);if(Q.enum){let W=Q.enum.map((Z)=>`"${String(Z)}"`).join(" | ");return{type:$?`${W} | null`:W,default:Q.default}}let U=Array.isArray(Q.type)?PH(Q.type):Q.type;if(U==="string")return{type:$?"string | null":"string",default:Q.default};if(U==="number"||U==="integer")return{type:$?"number | null":"number",default:Q.default};if(U==="boolean")return{type:$?"boolean | null":"boolean",default:Q.default};if(U==="array"){let W="items"in Q?Q.items:void 0;if(W){let Z=q(W,J,Y);return{type:$?{__isArray:!0,items:Z.type,__nullable:!0}:{__isArray:!0,items:Z.type},default:Q.default}}return{type:$?"unknown[] | null":"unknown[]",default:Q.default}}if(U==="object"||Q.properties){let W={},Z=Q.required||[];if(Q.properties)for(let[A,_]of Object.entries(Q.properties)){let L=q(_,J,Y),M=!1;if("$ref"in _){let V=d(_.$ref,J);if(V)M=V.default!==void 0}else M=_.default!==void 0;let G=Z.includes(A);if(X&&M&&!G)W[A]=L;else if(!G)W[`${A}?`]=L;else W[A]=L}if(Q.additionalProperties){if(Q.additionalProperties===!0)W["[key: string]"]={type:"unknown",default:void 0};else if(typeof Q.additionalProperties==="object"){let A=q(Q.additionalProperties,J,Y);W["[key: string]"]={type:A.type,default:A.default}}}return{type:$?{...W,__nullable:!0}:{...W},default:Q.default}}return{type:"unknown",default:void 0}}function n(H){return typeof H==="object"&&H!==null&&"type"in H&&"in"in H&&"name"in H}function s(H){let J=Object.entries(H);if(J.length===0)return!0;return J.every(([Y,X])=>{if(Y.endsWith("?"))return!0;if(n(X))return X.required===!1;if(o(X))return!1;if(typeof X==="object"&&X!==null&&!Array.isArray(X))return s(X);return!1})}function t(H,J=0){let Y=" ".repeat(J),X=J+1,Q=" ".repeat(X),$=Object.entries(H).map(([U,W])=>{if(typeof W==="string")return`${Q}${k(U)}: ${W}`;if(n(W)){let L=b(W.type,X),M=W.required===!1,G=k(U),V=M?`${G}?`:G,K="";if(W.description){if(K+=`${Q}/**
4
+ ${Q} * ${W.description}`,typeof W.default<"u")K+=`
5
+ ${Q} * @default {${W.default}}`;K=`${K}
6
6
  ${Q} */
7
- ${Q}`}else if(typeof J.default<"u")K+=`${Q}/** @default {${J.default}} */
8
- ${Q}`;else K=Q;return`${K}${G}: ${L}`}if(o(J)){let L=b(J.type,X);return`${Q}${U}: ${L}`}let A=typeof J==="object"&&J!==null&&!Array.isArray(J)&&s(J)?"?":"",_=b(J,X);return`${Q}${U}${A}: ${_}`}).join(`;
7
+ ${Q}`}else if(typeof W.default<"u")K+=`${Q}/** @default {${W.default}} */
8
+ ${Q}`;else K=Q;return`${K}${V}: ${L}`}if(o(W)){let L=b(W.type,X);return`${Q}${k(U)}: ${L}`}let A=typeof W==="object"&&W!==null&&!Array.isArray(W)&&s(W)?"?":"",_=b(W,X);return`${Q}${k(U)}${A}: ${_}`}).join(`;
9
9
  `);if($.length===0)return"{}";return`{
10
10
  ${$};
11
- ${Y}}`}function o(H){return typeof H==="object"&&H!==null&&"type"in H&&Object.keys(H).length<=2&&(!("default"in H)||Object.keys(H).length===2)}function zH(H){return typeof H==="object"&&H!==null&&"__isArray"in H&&H.__isArray===!0}function kH(H){return typeof H==="object"&&H!==null&&"__nullable"in H&&H.__nullable===!0}function b(H,W=0){if(typeof H==="string")return H;if(zH(H)){let X=`Array<${b(H.items,W)}>`;return H.__nullable?`${X} | null`:X}if(o(H))return b(H.type,W);if(kH(H)){let{__nullable:Y,...X}=H;return`${t(X,W)} | null`}if(typeof H==="object"&&H!==null&&!Array.isArray(H))return t(H,W);return String(H)}function a(H,W,Y){let X={},Q={},$={},U=[...H?.parameters||[],...W?.parameters||[]];for(let J of U){if("$ref"in J){let M=d(J.$ref,Y);if(M&&"in"in M&&"name"in M&&typeof M.in==="string"&&typeof M.name==="string"){let G="schema"in M&&M.schema?M.schema:{},{type:K,default:D}=R(G,Y,{defaultNonNullable:!1}),B={...M,type:K,default:D};if(M.in==="path")X[M.name]=B;else if(M.in==="query")Q[M.name]=B;else if(M.in==="header")$[M.name]=B}continue}let Z=J.schema||{},{type:A,default:_}=R(Z,Y,{defaultNonNullable:!1}),L={...J,type:A,default:_};if(J.in==="path")X[J.name]=L;else if(J.in==="query")Q[J.name]=L;else if(J.in==="header")$[J.name]=L}return{pathParams:X,queryParams:Q,headerParams:$}}function p(H,W){if(!H)return;if("$ref"in H){let X=d(H.$ref,W);if(X&&"content"in X&&X.content){let $=X.content["application/json"];if($&&"schema"in $&&$.schema)return R($.schema,W,{defaultNonNullable:!1}).type}return"unknown"}let Y=H.content;if(Y){let X=Y["application/json"];if(X&&"schema"in X&&X.schema)return R(X.schema,W,{defaultNonNullable:!1}).type}return}function w(H){if(H==="")return H;if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(H)||H.includes('"')||H.includes("'")||H.includes("`"))return`[\`${H}\`]`;return H}function f(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function IH(H){return H.replace(/^\.\//,"")}function RH(H,W,Y){let X={get:{},post:{},put:{},delete:{},patch:{}},Q=Y?.convertCase??"camel",$=(G,K)=>{if("$ref"in G){let B=f(G.$ref);if(B)K.add(B);return}let D=G;if(D.allOf)D.allOf.forEach((B)=>{$(B,K)});if(D.anyOf)D.anyOf.forEach((B)=>{$(B,K)});if(D.oneOf)D.oneOf.forEach((B)=>{$(B,K)});if(D.properties)Object.values(D.properties).forEach((B)=>{$(B,K)});if(D.type==="array"&&"items"in D&&D.items)$(D.items,K)},U=new Set,J=new Set,Z=new Set,A=(G)=>{if(G==="default")return!0;let K=parseInt(G,10);return K>=400&&K<600};if(H.paths)for(let G of Object.values(H.paths)){if(!G)continue;let K=["get","post","put","delete","patch"];for(let D of K){let B=G[D];if(!B)continue;if(B.requestBody)if("$ref"in B.requestBody){let V=f(B.requestBody.$ref);if(V)U.add(V)}else{let x=B.requestBody.content?.["application/json"];if(x&&"schema"in x&&x.schema)$(x.schema,U)}if(B.responses)for(let[V,x]of Object.entries(B.responses)){let F=A(V);if("$ref"in x){let I=f(x.$ref);if(I)if(F)Z.add(I);else J.add(I)}else if("content"in x){let P=x.content?.["application/json"];if(P&&"schema"in P&&P.schema)if(F)$(P.schema,Z);else $(P.schema,J)}}}}if(H.paths)for(let[G,K]of Object.entries(H.paths)){if(!K)continue;let D=["get","post","put","delete","patch"];for(let B of D){let V=K[B];if(!V)continue;let x={},{pathParams:F,queryParams:I}=a(K,V,H),P={};for(let[z,T]of Object.entries(F)){let E=N(z,Q);P[E]=T}let O={};for(let[z,T]of Object.entries(I)){let E=N(z,Q);O[E]=T}if(Object.keys(P).length>0)x.params=P;if(Object.keys(O).length>0)x.query=O;let j;if(V.requestBody)if("$ref"in V.requestBody){let z=p(V.requestBody,H);if(z!==void 0)j=z}else{let T=V.requestBody.content?.["application/json"];if(T&&"schema"in T&&T.schema)if("$ref"in T.schema){let E=f(T.schema.$ref);if(E&&H.components?.schemas?.[E]&&U.has(E))j=`DevupObject<'request', '${W}'>['${E}']`;else{let k=p(V.requestBody,H);if(k!==void 0)j=k}}else{let E=p(V.requestBody,H);if(E!==void 0)j=E}}if(j!==void 0)x.body=j;let q;if(V.responses){let z=V.responses["200"]||V.responses["201"]||Object.values(V.responses)[0];if(z){if("$ref"in z);else if("content"in z){let E=z.content?.["application/json"];if(E&&"schema"in E&&E.schema)if("$ref"in E.schema){let k=f(E.schema.$ref);if(k&&H.components?.schemas?.[k]&&J.has(k))q=`DevupObject<'response', '${W}'>['${k}']`;else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=R(E.schema,H,{defaultNonNullable:C});q=S}}else{let k=E.schema;if(k.type==="array"&&k.items&&"$ref"in k.items){let C=f(k.items.$ref);if(C&&H.components?.schemas?.[C]&&J.has(C))q=`Array<DevupObject<'response', '${W}'>['${C}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:c}=R(E.schema,H,{defaultNonNullable:S});q=c}}else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=R(E.schema,H,{defaultNonNullable:C});q=S}}}}}if(q!==void 0)x.response=q;let g;if(V.responses){let z=V.responses["400"]||V.responses["401"]||V.responses["403"]||V.responses["404"]||V.responses["422"]||V.responses["500"]||V.responses.default||Object.entries(V.responses).find(([T])=>A(T))?.[1];if(z){if("$ref"in z);else if("content"in z){let E=z.content?.["application/json"];if(E&&"schema"in E&&E.schema)if("$ref"in E.schema){let k=f(E.schema.$ref);if(k&&H.components?.schemas?.[k]&&Z.has(k))g=`DevupObject<'error', '${W}'>['${k}']`;else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=R(E.schema,H,{defaultNonNullable:C});g=S}}else{let k=E.schema;if(k.type==="array"&&k.items&&"$ref"in k.items){let C=f(k.items.$ref);if(C&&H.components?.schemas?.[C]&&Z.has(C))g=`Array<DevupObject<'error', '${W}'>['${C}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:c}=R(E.schema,H,{defaultNonNullable:S});g=c}}else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=R(E.schema,H,{defaultNonNullable:C});g=S}}}}}if(g!==void 0)x.error=g;let y=G.replace(/\{([^}]+)\}/g,(z,T)=>{return`{${N(T,Q)}}`});if(X[B][y]=x,V.operationId){let z=N(V.operationId,Q);X[B][z]=x}}}let _={},L={},M={};if(H.components?.schemas){for(let[G,K]of Object.entries(H.components.schemas))if(K){let D=Y?.requestDefaultNonNullable??!1,V=Y?.responseDefaultNonNullable??!0;if(U.has(G))V=D;let{type:x}=R(K,H,{defaultNonNullable:V});if(U.has(G))_[G]=x;if(J.has(G))L[G]=x;if(Z.has(G))M[G]=x}}return{endpoints:X,requestComponents:_,responseComponents:L,errorComponents:M}}function lH(H,W){let Y=[],X=new Map,Q={},$={},U={},J={};for(let[F,I]of Object.entries(H)){let P=IH(F);Y.push(P),X.set(P,F);let{endpoints:O,requestComponents:j,responseComponents:q,errorComponents:g}=RH(I,P,W);Q[P]=O,$[P]=j,U[P]=q,J[P]=g}let A=` interface DevupApiServers {
12
- ${Y.map((F)=>` ${w(F)}: never`).join(`;
11
+ ${Y}}`}function o(H){return typeof H==="object"&&H!==null&&"type"in H&&Object.keys(H).length<=2&&(!("default"in H)||Object.keys(H).length===2)}function kH(H){return typeof H==="object"&&H!==null&&"__isArray"in H&&H.__isArray===!0}function zH(H){return typeof H==="object"&&H!==null&&"__nullable"in H&&H.__nullable===!0}function b(H,J=0){if(typeof H==="string")return H;if(kH(H)){let X=`Array<${b(H.items,J)}>`;return H.__nullable?`${X} | null`:X}if(o(H))return b(H.type,J);if(zH(H)){let{__nullable:Y,...X}=H;return`${t(X,J)} | null`}if(typeof H==="object"&&H!==null&&!Array.isArray(H))return t(H,J);return String(H)}function a(H,J,Y){let X={},Q={},$={},U=[...H?.parameters||[],...J?.parameters||[]];for(let W of U){if("$ref"in W){let M=d(W.$ref,Y);if(M&&"in"in M&&"name"in M&&typeof M.in==="string"&&typeof M.name==="string"){let G="schema"in M&&M.schema?M.schema:{},{type:V,default:K}=q(G,Y,{defaultNonNullable:!1}),x={...M,type:V,default:K};if(M.in==="path")X[M.name]=x;else if(M.in==="query")Q[M.name]=x;else if(M.in==="header")$[M.name]=x}continue}let Z=W.schema||{},{type:A,default:_}=q(Z,Y,{defaultNonNullable:!1}),L={...W,type:A,default:_};if(W.in==="path")X[W.name]=L;else if(W.in==="query")Q[W.name]=L;else if(W.in==="header")$[W.name]=L}return{pathParams:X,queryParams:Q,headerParams:$}}function p(H,J){if(!H)return;if("$ref"in H){let X=d(H.$ref,J);if(X&&"content"in X&&X.content){let $=X.content["application/json"];if($&&"schema"in $&&$.schema)return q($.schema,J,{defaultNonNullable:!1}).type}return"unknown"}let Y=H.content;if(Y){let X=Y["application/json"];if(X&&"schema"in X&&X.schema)return q(X.schema,J,{defaultNonNullable:!1}).type}return}function f(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function RH(H){return H.replace(/^\.\//,"")}function qH(H,J,Y){let X={get:{},post:{},put:{},delete:{},patch:{}},Q=Y?.convertCase??"camel",$=(G,V)=>{if("$ref"in G){let x=f(G.$ref);if(x)V.add(x);return}let K=G;if(K.allOf)K.allOf.forEach((x)=>{$(x,V)});if(K.anyOf)K.anyOf.forEach((x)=>{$(x,V)});if(K.oneOf)K.oneOf.forEach((x)=>{$(x,V)});if(K.properties)Object.values(K.properties).forEach((x)=>{$(x,V)});if(K.type==="array"&&"items"in K&&K.items)$(K.items,V)},U=new Set,W=new Set,Z=new Set,A=(G)=>{if(G==="default")return!0;let V=parseInt(G,10);return V>=400&&V<600};if(H.paths)for(let G of Object.values(H.paths)){if(!G)continue;let V=["get","post","put","delete","patch"];for(let K of V){let x=G[K];if(!x)continue;if(x.requestBody)if("$ref"in x.requestBody){let B=f(x.requestBody.$ref);if(B)U.add(B)}else{let D=x.requestBody.content?.["application/json"];if(D&&"schema"in D&&D.schema)$(D.schema,U)}if(x.responses)for(let[B,D]of Object.entries(x.responses)){let F=A(B);if("$ref"in D){let R=f(D.$ref);if(R)if(F)Z.add(R);else W.add(R)}else if("content"in D){let P=D.content?.["application/json"];if(P&&"schema"in P&&P.schema)if(F)$(P.schema,Z);else $(P.schema,W)}}}}if(H.paths)for(let[G,V]of Object.entries(H.paths)){if(!V)continue;let K=["get","post","put","delete","patch"];for(let x of K){let B=V[x];if(!B)continue;let D={},{pathParams:F,queryParams:R}=a(V,B,H),P={};for(let[z,O]of Object.entries(F)){let E=N(z,Q);P[E]=O}let T={};for(let[z,O]of Object.entries(R)){let E=N(z,Q);T[E]=O}if(Object.keys(P).length>0)D.params=P;if(Object.keys(T).length>0)D.query=T;let j;if(B.requestBody)if("$ref"in B.requestBody){let z=p(B.requestBody,H);if(z!==void 0)j=z}else{let O=B.requestBody.content?.["application/json"];if(O&&"schema"in O&&O.schema)if("$ref"in O.schema){let E=f(O.schema.$ref);if(E&&H.components?.schemas?.[E]&&U.has(E))j=`DevupObject<'request', '${J}'>['${E}']`;else{let w=p(B.requestBody,H);if(w!==void 0)j=w}}else{let E=p(B.requestBody,H);if(E!==void 0)j=E}}if(j!==void 0)D.body=j;let I;if(B.responses){let z=B.responses["200"]||B.responses["201"]||Object.values(B.responses)[0];if(z){if("$ref"in z);else if("content"in z){let E=z.content?.["application/json"];if(E&&"schema"in E&&E.schema)if("$ref"in E.schema){let w=f(E.schema.$ref);if(w&&H.components?.schemas?.[w]&&W.has(w))I=`DevupObject<'response', '${J}'>['${w}']`;else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=q(E.schema,H,{defaultNonNullable:C});I=S}}else{let w=E.schema;if(w.type==="array"&&w.items&&"$ref"in w.items){let C=f(w.items.$ref);if(C&&H.components?.schemas?.[C]&&W.has(C))I=`Array<DevupObject<'response', '${J}'>['${C}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:c}=q(E.schema,H,{defaultNonNullable:S});I=c}}else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=q(E.schema,H,{defaultNonNullable:C});I=S}}}}}if(I!==void 0)D.response=I;let g;if(B.responses){let z=B.responses["400"]||B.responses["401"]||B.responses["403"]||B.responses["404"]||B.responses["422"]||B.responses["500"]||B.responses.default||Object.entries(B.responses).find(([O])=>A(O))?.[1];if(z){if("$ref"in z);else if("content"in z){let E=z.content?.["application/json"];if(E&&"schema"in E&&E.schema)if("$ref"in E.schema){let w=f(E.schema.$ref);if(w&&H.components?.schemas?.[w]&&Z.has(w))g=`DevupObject<'error', '${J}'>['${w}']`;else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=q(E.schema,H,{defaultNonNullable:C});g=S}}else{let w=E.schema;if(w.type==="array"&&w.items&&"$ref"in w.items){let C=f(w.items.$ref);if(C&&H.components?.schemas?.[C]&&Z.has(C))g=`Array<DevupObject<'error', '${J}'>['${C}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:c}=q(E.schema,H,{defaultNonNullable:S});g=c}}else{let C=Y?.responseDefaultNonNullable??!0,{type:S}=q(E.schema,H,{defaultNonNullable:C});g=S}}}}}if(g!==void 0)D.error=g;let y=G.replace(/\{([^}]+)\}/g,(z,O)=>{return`{${N(O,Q)}}`});if(X[x][y]=D,B.operationId){let z=N(B.operationId,Q);X[x][z]=D}}}let _={},L={},M={};if(H.components?.schemas){for(let[G,V]of Object.entries(H.components.schemas))if(V){let K=Y?.requestDefaultNonNullable??!1,B=Y?.responseDefaultNonNullable??!0;if(U.has(G))B=K;let{type:D}=q(V,H,{defaultNonNullable:B});if(U.has(G))_[G]=D;if(W.has(G))L[G]=D;if(Z.has(G))M[G]=D}}return{endpoints:X,requestComponents:_,responseComponents:L,errorComponents:M}}function oH(H,J){let Y=[],X=new Map,Q={},$={},U={},W={};for(let[F,R]of Object.entries(H)){let P=RH(F);Y.push(P),X.set(P,F);let{endpoints:T,requestComponents:j,responseComponents:I,errorComponents:g}=qH(R,P,J);Q[P]=T,$[P]=j,U[P]=I,W[P]=g}let A=` interface DevupApiServers {
12
+ ${Y.map((F)=>` ${k(F)}: never`).join(`;
13
13
  `)}
14
- }`,_=[],L=["get","post","put","delete","patch"];for(let F of L){let I=[];for(let P of Y){let O=Q[P]?.[F];if(O&&Object.keys(O).length>0){let j=Object.entries(O).map(([g,y])=>{let z=b(y,3);return` ${w(g)}: ${z}`}).join(`;
15
- `),q=w(P);I.push(` ${q}: {
14
+ }`,_=[],L=["get","post","put","delete","patch"];for(let F of L){let R=[];for(let P of Y){let T=Q[P]?.[F];if(T&&Object.keys(T).length>0){let j=Object.entries(T).map(([g,y])=>{let z=b(y,3);return` ${k(g)}: ${z}`}).join(`;
15
+ `),I=k(P);R.push(` ${I}: {
16
16
  ${j};
17
- }`)}}if(I.length>0){let P=`Devup${wH(F)}ApiStruct`;_.push(` interface ${P} {
18
- ${I.join(`;
17
+ }`)}}if(R.length>0){let P=`Devup${wH(F)}ApiStruct`;_.push(` interface ${P} {
18
+ ${R.join(`;
19
19
  `)}
20
- }`)}}let M=[],G=[],K=[];for(let F of Y){let I=w(F),P=$[F]||{};if(Object.keys(P).length>0){let q=Object.entries(P).map(([g,y])=>{let z=b(y,3);return` ${w(g)}: ${z}`}).join(`;
21
- `);M.push(` ${I}: {
22
- ${q};
23
- }`)}let O=U[F]||{};if(Object.keys(O).length>0){let q=Object.entries(O).map(([g,y])=>{let z=b(y,3);return` ${w(g)}: ${z}`}).join(`;
24
- `);G.push(` ${I}: {
25
- ${q};
26
- }`)}let j=J[F]||{};if(Object.keys(j).length>0){let q=Object.entries(j).map(([g,y])=>{let z=b(y,2);return` ${w(g)}: ${z}`}).join(`;
27
- `);K.push(` ${I}: {
28
- ${q};
29
- }`)}}let D=M.length>0?` interface DevupRequestComponentStruct {
20
+ }`)}}let M=[],G=[],V=[];for(let F of Y){let R=k(F),P=$[F]||{};if(Object.keys(P).length>0){let I=Object.entries(P).map(([g,y])=>{let z=b(y,3);return` ${k(g)}: ${z}`}).join(`;
21
+ `);M.push(` ${R}: {
22
+ ${I};
23
+ }`)}let T=U[F]||{};if(Object.keys(T).length>0){let I=Object.entries(T).map(([g,y])=>{let z=b(y,3);return` ${k(g)}: ${z}`}).join(`;
24
+ `);G.push(` ${R}: {
25
+ ${I};
26
+ }`)}let j=W[F]||{};if(Object.keys(j).length>0){let I=Object.entries(j).map(([g,y])=>{let z=b(y,2);return` ${k(g)}: ${z}`}).join(`;
27
+ `);V.push(` ${R}: {
28
+ ${I};
29
+ }`)}}let K=M.length>0?` interface DevupRequestComponentStruct {
30
30
  ${M.join(`;
31
31
  `)}
32
- }`:" interface DevupRequestComponentStruct {}",B=G.length>0?` interface DevupResponseComponentStruct {
32
+ }`:" interface DevupRequestComponentStruct {}",x=G.length>0?` interface DevupResponseComponentStruct {
33
33
  ${G.join(`;
34
34
  `)}
35
- }`:" interface DevupResponseComponentStruct {}",V=K.length>0?` interface DevupErrorComponentStruct {
36
- ${K.join(`;
35
+ }`:" interface DevupResponseComponentStruct {}",B=V.length>0?` interface DevupErrorComponentStruct {
36
+ ${V.join(`;
37
37
  `)}
38
38
  }`:" interface DevupErrorComponentStruct {}";return`import "@devup-api/fetch";
39
39
  import type { DevupObject } from "@devup-api/fetch";
40
40
 
41
41
  declare module "@devup-api/fetch" {
42
- ${[A,..._,D,B,V].join(`
42
+ ${[A,..._,K,x,B].join(`
43
43
 
44
44
  `)}
45
- }`}function e(H){return H.replace(/^\.\//,"")}function i(H,W){if(!H.startsWith("#/"))return null;let Y=H.slice(2).split("/"),X=W;for(let Q of Y)if(X&&typeof X==="object"&&Q in X)X=X[Q];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function h(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function qH(H){if(H==="default")return!0;let W=parseInt(H,10);return W>=400&&W<600}function v(H,W,Y,X){let Q=X?.defaultNonNullable??!1;if("$ref"in H){let _=h(H.$ref);if(_&&Y.has(_))return`z.lazy(() => ${Y.get(_)})`;let L=i(H.$ref,W);if(L)return v(L,W,Y,X);return"z.unknown()"}let $=H,U=()=>{if("nullable"in $&&$.nullable===!0)return!0;if(Array.isArray($.type)&&$.type.includes("null"))return!0;return!1},J=(_)=>{if(U())return`${_}.nullable()`;return _},A=(()=>{if(Array.isArray($.type))return $.type.filter((L)=>L!=="null")[0];return $.type})();if($.allOf){let _=$.allOf.map((L)=>v(L,W,Y,X));if(_.length===0)return"z.unknown()";if(_.length===1)return J(_[0]);return J(`z.intersection(${_.join(", ")})`)}if($.oneOf||$.anyOf){let _=($.oneOf||$.anyOf||[]).map((L)=>v(L,W,Y,X));if(_.length===0)return"z.unknown()";if(_.length===1)return J(_[0]);return J(`z.union([${_.join(", ")}])`)}if($.enum){let _=$.enum.map((L)=>JSON.stringify(L));if(_.length===1)return J(`z.literal(${_[0]})`);return J(`z.enum([${_.join(", ")}])`)}if(A==="string"){if($.format==="email"){let L="z.email()";if($.minLength!==void 0)L+=`.min(${$.minLength})`;if($.maxLength!==void 0)L+=`.max(${$.maxLength})`;return J(L)}if($.format==="uri"||$.format==="url"){let L="z.url()";if($.minLength!==void 0)L+=`.min(${$.minLength})`;if($.maxLength!==void 0)L+=`.max(${$.maxLength})`;return J(L)}if($.format==="uuid")return J("z.uuid()");if($.format==="date-time")return J("z.iso.datetime()");let _="z.string()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;if($.pattern)_+=`.regex(/${$.pattern}/)`;return J(_)}if(A==="number"||A==="integer"){let _=A==="integer"?"z.int()":"z.number()";if($.minimum!==void 0)_+=`.min(${$.minimum})`;if($.maximum!==void 0)_+=`.max(${$.maximum})`;if($.exclusiveMinimum!==void 0)_+=`.gt(${$.exclusiveMinimum})`;if($.exclusiveMaximum!==void 0)_+=`.lt(${$.exclusiveMaximum})`;return J(_)}if(A==="boolean")return J("z.boolean()");if(A==="array"){if("items"in $&&$.items){let L=`z.array(${v($.items,W,Y,X)})`;if($.minItems!==void 0)L+=`.min(${$.minItems})`;if($.maxItems!==void 0)L+=`.max(${$.maxItems})`;return J(L)}return J("z.array(z.unknown())")}if(A==="object"||$.properties){let _=new Set($.required||[]),L=[];if($.properties)for(let[G,K]of Object.entries($.properties)){let D=v(K,W,Y,X),B=_.has(G),V=!1;if("$ref"in K){let F=i(K.$ref,W);if(F)V=F.default!==void 0}else V=K.default!==void 0;let x=D;if(!B&&!(Q&&V))x+=".optional()";L.push(`${w(G)}: ${x}`)}let M=L.length>0?`z.object({
45
+ }`}function e(H){return H.replace(/^\.\//,"")}function i(H,J){if(!H.startsWith("#/"))return null;let Y=H.slice(2).split("/"),X=J;for(let Q of Y)if(X&&typeof X==="object"&&Q in X)X=X[Q];else return null;if(X&&typeof X==="object"&&!("$ref"in X))return X;return null}function h(H){if(H.startsWith("#/components/schemas/"))return H.replace("#/components/schemas/","");return null}function IH(H){if(H==="default")return!0;let J=parseInt(H,10);return J>=400&&J<600}function v(H,J,Y,X){let Q=X?.defaultNonNullable??!1;if("$ref"in H){let _=h(H.$ref);if(_&&Y.has(_))return`z.lazy(() => ${Y.get(_)})`;let L=i(H.$ref,J);if(L)return v(L,J,Y,X);return"z.unknown()"}let $=H,U=()=>{if("nullable"in $&&$.nullable===!0)return!0;if(Array.isArray($.type)&&$.type.includes("null"))return!0;return!1},W=(_)=>{if(U())return`${_}.nullable()`;return _},A=(()=>{if(Array.isArray($.type))return $.type.filter((L)=>L!=="null")[0];return $.type})();if($.allOf){let _=$.allOf.map((L)=>v(L,J,Y,X));if(_.length===0)return"z.unknown()";if(_.length===1)return W(_[0]);return W(`z.intersection(${_.join(", ")})`)}if($.oneOf||$.anyOf){let _=($.oneOf||$.anyOf||[]).map((L)=>v(L,J,Y,X));if(_.length===0)return"z.unknown()";if(_.length===1)return W(_[0]);return W(`z.union([${_.join(", ")}])`)}if($.enum){let _=$.enum.map((L)=>JSON.stringify(L));if(_.length===1)return W(`z.literal(${_[0]})`);return W(`z.enum([${_.join(", ")}])`)}if(A==="string"){if($.format==="email"){let L="z.email()";if($.minLength!==void 0)L+=`.min(${$.minLength})`;if($.maxLength!==void 0)L+=`.max(${$.maxLength})`;return W(L)}if($.format==="uri"||$.format==="url"){let L="z.url()";if($.minLength!==void 0)L+=`.min(${$.minLength})`;if($.maxLength!==void 0)L+=`.max(${$.maxLength})`;return W(L)}if($.format==="uuid")return W("z.uuid()");if($.format==="date-time")return W("z.iso.datetime()");let _="z.string()";if($.minLength!==void 0)_+=`.min(${$.minLength})`;if($.maxLength!==void 0)_+=`.max(${$.maxLength})`;if($.pattern)_+=`.regex(/${$.pattern}/)`;return W(_)}if(A==="number"||A==="integer"){let _=A==="integer"?"z.int()":"z.number()";if($.minimum!==void 0)_+=`.min(${$.minimum})`;if($.maximum!==void 0)_+=`.max(${$.maximum})`;if($.exclusiveMinimum!==void 0)_+=`.gt(${$.exclusiveMinimum})`;if($.exclusiveMaximum!==void 0)_+=`.lt(${$.exclusiveMaximum})`;return W(_)}if(A==="boolean")return W("z.boolean()");if(A==="array"){if("items"in $&&$.items){let L=`z.array(${v($.items,J,Y,X)})`;if($.minItems!==void 0)L+=`.min(${$.minItems})`;if($.maxItems!==void 0)L+=`.max(${$.maxItems})`;return W(L)}return W("z.array(z.unknown())")}if(A==="object"||$.properties){let _=new Set($.required||[]),L=[];if($.properties)for(let[G,V]of Object.entries($.properties)){let K=v(V,J,Y,X),x=_.has(G),B=!1;if("$ref"in V){let F=i(V.$ref,J);if(F)B=F.default!==void 0}else B=V.default!==void 0;let D=K;if(!x&&!(Q&&B))D+=".optional()";L.push(`${k(G)}: ${D}`)}let M=L.length>0?`z.object({
46
46
  ${L.join(`,
47
47
  `)}
48
- })`:"z.object({})";if($.additionalProperties===!0)M+=".passthrough()";else if(typeof $.additionalProperties==="object"&&$.additionalProperties!==null)M+=".passthrough()";return J(M)}return"z.unknown()"}function u(H,W,Y){let X=Y?.defaultNonNullable??!1;if("$ref"in H){if(h(H.$ref))return"z.ZodLazy<z.ZodTypeAny>";let _=i(H.$ref,W);if(_)return u(_,W,Y);return"z.ZodUnknown"}let Q=H,$=()=>{if("nullable"in Q&&Q.nullable===!0)return!0;if(Array.isArray(Q.type)&&Q.type.includes("null"))return!0;return!1},U=(A)=>{if($())return`z.ZodNullable<${A}>`;return A},Z=(()=>{if(Array.isArray(Q.type))return Q.type.filter((_)=>_!=="null")[0];return Q.type})();if(Q.allOf){let A=Q.allOf.map((L)=>u(L,W,Y));if(A.length===0)return"z.ZodUnknown";if(A.length===1)return U(A[0]);let _=A[0];for(let L=1;L<A.length;L++)_=`z.ZodIntersection<${_}, ${A[L]}>`;return U(_)}if(Q.oneOf||Q.anyOf){let A=(Q.oneOf||Q.anyOf||[]).map((_)=>u(_,W,Y));if(A.length===0)return"z.ZodUnknown";if(A.length===1)return U(A[0]);return U(`z.ZodUnion<[${A.join(", ")}]>`)}if(Q.enum){let A=Q.enum.map((_)=>JSON.stringify(_));if(A.length===1)return U(`z.ZodLiteral<${A[0]}>`);return U(`z.ZodEnum<[${A.join(", ")}]>`)}if(Z==="string")return U("z.ZodString");if(Z==="number"||Z==="integer")return U("z.ZodNumber");if(Z==="boolean")return U("z.ZodBoolean");if(Z==="array"){if("items"in Q&&Q.items){let A=u(Q.items,W,Y);return U(`z.ZodArray<${A}>`)}return U("z.ZodArray<z.ZodUnknown>")}if(Z==="object"||Q.properties){let A=new Set(Q.required||[]),_=[];if(Q.properties)for(let[M,G]of Object.entries(Q.properties)){let K=u(G,W,Y),D=A.has(M),B=!1;if("$ref"in G){let x=i(G.$ref,W);if(x)B=x.default!==void 0}else B=G.default!==void 0;let V=K;if(!D&&!(X&&B))V=`z.ZodOptional<${K}>`;_.push(`${w(M)}: ${V}`)}let L=_.length>0?`z.ZodObject<{ ${_.join("; ")} }>`:"z.ZodObject<Record<string, never>>";return U(L)}return"z.ZodUnknown"}function gH(H,W){let Y=new Set,X=new Set,Q=new Set,$={get:{},post:{},put:{},delete:{},patch:{}},U=W?.convertCase??"camel",J=(A,_)=>{if("$ref"in A){let M=h(A.$ref);if(M)_.add(M);return}let L=A;if(L.allOf)L.allOf.forEach((M)=>{J(M,_)});if(L.anyOf)L.anyOf.forEach((M)=>{J(M,_)});if(L.oneOf)L.oneOf.forEach((M)=>{J(M,_)});if(L.properties)Object.values(L.properties).forEach((M)=>{J(M,_)});if(L.type==="array"&&"items"in L&&L.items)J(L.items,_)},Z=(A)=>{if("$ref"in A)return h(A.$ref);let L=A.content?.["application/json"];if(L?.schema&&"$ref"in L.schema)return h(L.schema.$ref);return null};if(H.paths)for(let[A,_]of Object.entries(H.paths)){if(!_)continue;let L=["get","post","put","delete","patch"];for(let M of L){let G=_[M];if(!G)continue;let K=A.replace(/\{([^}]+)\}/g,(x,F)=>{return`{${N(F,U)}}`}),D=G.operationId?N(G.operationId,U):null,B=null;if(G.requestBody)if(B=Z(G.requestBody),"$ref"in G.requestBody){let x=h(G.requestBody.$ref);if(x)Y.add(x)}else{let F=G.requestBody.content?.["application/json"];if(F?.schema)J(F.schema,Y)}let V={schemaName:B,operationId:D};if($[M][K]=V,D)$[M][D]=V;if(G.responses)for(let[x,F]of Object.entries(G.responses)){let I=qH(x);if("$ref"in F){let P=h(F.$ref);if(P)if(I)Q.add(P);else X.add(P)}else if("content"in F){let O=F.content?.["application/json"];if(O?.schema)if(I)J(O.schema,Q);else J(O.schema,X)}}}}return{requestSchemaNames:Y,responseSchemaNames:X,errorSchemaNames:Q,pathMappings:$}}function HH(H,W,Y){let{requestSchemaNames:X,responseSchemaNames:Q,errorSchemaNames:$,pathMappings:U}=gH(H,Y),J={},Z={},A={},_=new Map;if(H.components?.schemas)for(let L of Object.keys(H.components.schemas))_.set(L,`_${L}`);if(H.components?.schemas)for(let[L,M]of Object.entries(H.components.schemas)){if(!M)continue;let G=Y?.requestDefaultNonNullable??!1,K=Y?.responseDefaultNonNullable??!0,D=X.has(L),B=Q.has(L),V=$.has(L),x=M;if(D)J[L]={code:v(x,H,_,{defaultNonNullable:G}),type:u(x,H,{defaultNonNullable:G})};if(B)Z[L]={code:v(x,H,_,{defaultNonNullable:K}),type:u(x,H,{defaultNonNullable:K})};if(V)A[L]={code:v(x,H,_,{defaultNonNullable:K}),type:u(x,H,{defaultNonNullable:K})}}return{requestSchemas:J,responseSchemas:Z,errorSchemas:A,pathMappings:U}}function tH(H,W){let Y={};for(let[$,U]of Object.entries(H)){let J=e($);Y[J]=HH(U,J,W)}let X=['import { z } from "zod";',""];for(let[$,U]of Object.entries(Y)){let J=$.replace(/[^a-zA-Z0-9]/g,"_");if(Object.keys(U.requestSchemas).length>0){X.push(`// Request schemas for ${$}`);for(let[Z,A]of Object.entries(U.requestSchemas))X.push(`const ${J}_request_${Z} = ${A.code};`);X.push("")}if(Object.keys(U.responseSchemas).length>0){X.push(`// Response schemas for ${$}`);for(let[Z,A]of Object.entries(U.responseSchemas))X.push(`const ${J}_response_${Z} = ${A.code};`);X.push("")}if(Object.keys(U.errorSchemas).length>0){X.push(`// Error schemas for ${$}`);for(let[Z,A]of Object.entries(U.errorSchemas))X.push(`const ${J}_error_${Z} = ${A.code};`);X.push("")}}X.push("// Exported schemas");for(let[$,U]of Object.entries(Y)){let J=$.replace(/[^a-zA-Z0-9]/g,"_"),Z=Object.keys(U.requestSchemas).map((M)=>` ${w(M)}: ${J}_request_${M}`).join(`,
49
- `);X.push(`export const ${J}_requestSchemas = {`),X.push(Z||""),X.push("};"),X.push("");let A=Object.keys(U.responseSchemas).map((M)=>` ${w(M)}: ${J}_response_${M}`).join(`,
50
- `);X.push(`export const ${J}_responseSchemas = {`),X.push(A||""),X.push("};"),X.push("");let _=Object.keys(U.errorSchemas).map((M)=>` ${w(M)}: ${J}_error_${M}`).join(`,
51
- `);X.push(`export const ${J}_errorSchemas = {`),X.push(_||""),X.push("};"),X.push("");let L=["post","put","patch","delete"];for(let M of L){let G=[],K=U.pathMappings[M];for(let[D,B]of Object.entries(K))if(B.schemaName&&U.requestSchemas[B.schemaName])G.push(` ${w(D)}: ${J}_request_${B.schemaName}`);if(G.length>0)X.push(`export const ${J}_${M}PathSchemas = {`),X.push(G.join(`,
52
- `)),X.push("};"),X.push("");else X.push(`export const ${J}_${M}PathSchemas = {};`),X.push("")}}let Q=Object.keys(Y);if(Q.length===1){let $=Q[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 Q){let U=$.replace(/[^a-zA-Z0-9]/g,"_");X.push(` ${w($)}: {`),X.push(` request: ${U}_requestSchemas,`),X.push(` response: ${U}_responseSchemas,`),X.push(` error: ${U}_errorSchemas,`),X.push(" },")}if(X.push("};"),Q.length>0){let U=Q[0].replace(/[^a-zA-Z0-9]/g,"_");X.push(""),X.push("// Default server exports (first server)"),X.push(`export const requestSchemas = ${U}_requestSchemas;`),X.push(`export const responseSchemas = ${U}_responseSchemas;`),X.push(`export const errorSchemas = ${U}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings (first server)"),X.push(`export const postPathSchemas = ${U}_postPathSchemas;`),X.push(`export const putPathSchemas = ${U}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${U}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${U}_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(`
53
- `)}function nH(H,W){let Y={};for(let[Q,$]of Object.entries(H)){let U=e(Q);Y[U]=HH($,U,W)}let X=['import "@devup-api/zod";','import type { z } from "zod";',"",'declare module "@devup-api/zod" {'];for(let[Q,$]of Object.entries(Y)){if(Object.keys($.requestSchemas).length>0){X.push(" interface DevupZodRequestSchemas {"),X.push(` ${w(Q)}: {`);for(let[U,J]of Object.entries($.requestSchemas))X.push(` ${w(U)}: ${J.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.responseSchemas).length>0){X.push(" interface DevupZodResponseSchemas {"),X.push(` ${w(Q)}: {`);for(let[U,J]of Object.entries($.responseSchemas))X.push(` ${w(U)}: ${J.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.errorSchemas).length>0){X.push(" interface DevupZodErrorSchemas {"),X.push(` ${w(Q)}: {`);for(let[U,J]of Object.entries($.errorSchemas))X.push(` ${w(U)}: ${J.type};`);X.push(" };"),X.push(" }"),X.push("")}}return X.push("}"),X.join(`
54
- `)}export{QH as parseDevupTag,MH as parseDevupOperations,l as parseCrudConfigsFromMultiple,KH as parseCrudConfigs,nH as generateZodTypeDeclarations,tH as generateZodSchemas,lH as generateInterface,fH as generateCrudConfigTypes,yH as generateCrudConfigCode,UH as extractPathParams,jH as createUrlMap,GH as buildCrudConfigs};
48
+ })`:"z.object({})";if($.additionalProperties===!0)M+=".passthrough()";else if(typeof $.additionalProperties==="object"&&$.additionalProperties!==null)M+=".passthrough()";return W(M)}return"z.unknown()"}function u(H,J,Y){let X=Y?.defaultNonNullable??!1;if("$ref"in H){if(h(H.$ref))return"z.ZodLazy<z.ZodTypeAny>";let _=i(H.$ref,J);if(_)return u(_,J,Y);return"z.ZodUnknown"}let Q=H,$=()=>{if("nullable"in Q&&Q.nullable===!0)return!0;if(Array.isArray(Q.type)&&Q.type.includes("null"))return!0;return!1},U=(A)=>{if($())return`z.ZodNullable<${A}>`;return A},Z=(()=>{if(Array.isArray(Q.type))return Q.type.filter((_)=>_!=="null")[0];return Q.type})();if(Q.allOf){let A=Q.allOf.map((L)=>u(L,J,Y));if(A.length===0)return"z.ZodUnknown";if(A.length===1)return U(A[0]);let _=A[0];for(let L=1;L<A.length;L++)_=`z.ZodIntersection<${_}, ${A[L]}>`;return U(_)}if(Q.oneOf||Q.anyOf){let A=(Q.oneOf||Q.anyOf||[]).map((_)=>u(_,J,Y));if(A.length===0)return"z.ZodUnknown";if(A.length===1)return U(A[0]);return U(`z.ZodUnion<[${A.join(", ")}]>`)}if(Q.enum){let A=Q.enum.map((_)=>JSON.stringify(_));if(A.length===1)return U(`z.ZodLiteral<${A[0]}>`);return U(`z.ZodEnum<[${A.join(", ")}]>`)}if(Z==="string")return U("z.ZodString");if(Z==="number"||Z==="integer")return U("z.ZodNumber");if(Z==="boolean")return U("z.ZodBoolean");if(Z==="array"){if("items"in Q&&Q.items){let A=u(Q.items,J,Y);return U(`z.ZodArray<${A}>`)}return U("z.ZodArray<z.ZodUnknown>")}if(Z==="object"||Q.properties){let A=new Set(Q.required||[]),_=[];if(Q.properties)for(let[M,G]of Object.entries(Q.properties)){let V=u(G,J,Y),K=A.has(M),x=!1;if("$ref"in G){let D=i(G.$ref,J);if(D)x=D.default!==void 0}else x=G.default!==void 0;let B=V;if(!K&&!(X&&x))B=`z.ZodOptional<${V}>`;_.push(`${k(M)}: ${B}`)}let L=_.length>0?`z.ZodObject<{ ${_.join("; ")} }>`:"z.ZodObject<Record<string, never>>";return U(L)}return"z.ZodUnknown"}function gH(H,J){let Y=new Set,X=new Set,Q=new Set,$={get:{},post:{},put:{},delete:{},patch:{}},U=J?.convertCase??"camel",W=(A,_)=>{if("$ref"in A){let M=h(A.$ref);if(M)_.add(M);return}let L=A;if(L.allOf)L.allOf.forEach((M)=>{W(M,_)});if(L.anyOf)L.anyOf.forEach((M)=>{W(M,_)});if(L.oneOf)L.oneOf.forEach((M)=>{W(M,_)});if(L.properties)Object.values(L.properties).forEach((M)=>{W(M,_)});if(L.type==="array"&&"items"in L&&L.items)W(L.items,_)},Z=(A)=>{if("$ref"in A)return h(A.$ref);let L=A.content?.["application/json"];if(L?.schema&&"$ref"in L.schema)return h(L.schema.$ref);return null};if(H.paths)for(let[A,_]of Object.entries(H.paths)){if(!_)continue;let L=["get","post","put","delete","patch"];for(let M of L){let G=_[M];if(!G)continue;let V=A.replace(/\{([^}]+)\}/g,(D,F)=>{return`{${N(F,U)}}`}),K=G.operationId?N(G.operationId,U):null,x=null;if(G.requestBody)if(x=Z(G.requestBody),"$ref"in G.requestBody){let D=h(G.requestBody.$ref);if(D)Y.add(D)}else{let F=G.requestBody.content?.["application/json"];if(F?.schema)W(F.schema,Y)}let B={schemaName:x,operationId:K};if($[M][V]=B,K)$[M][K]=B;if(G.responses)for(let[D,F]of Object.entries(G.responses)){let R=IH(D);if("$ref"in F){let P=h(F.$ref);if(P)if(R)Q.add(P);else X.add(P)}else if("content"in F){let T=F.content?.["application/json"];if(T?.schema)if(R)W(T.schema,Q);else W(T.schema,X)}}}}return{requestSchemaNames:Y,responseSchemaNames:X,errorSchemaNames:Q,pathMappings:$}}function HH(H,J,Y){let{requestSchemaNames:X,responseSchemaNames:Q,errorSchemaNames:$,pathMappings:U}=gH(H,Y),W={},Z={},A={},_=new Map;if(H.components?.schemas)for(let L of Object.keys(H.components.schemas))_.set(L,`_${L}`);if(H.components?.schemas)for(let[L,M]of Object.entries(H.components.schemas)){if(!M)continue;let G=Y?.requestDefaultNonNullable??!1,V=Y?.responseDefaultNonNullable??!0,K=X.has(L),x=Q.has(L),B=$.has(L),D=M;if(K)W[L]={code:v(D,H,_,{defaultNonNullable:G}),type:u(D,H,{defaultNonNullable:G})};if(x)Z[L]={code:v(D,H,_,{defaultNonNullable:V}),type:u(D,H,{defaultNonNullable:V})};if(B)A[L]={code:v(D,H,_,{defaultNonNullable:V}),type:u(D,H,{defaultNonNullable:V})}}return{requestSchemas:W,responseSchemas:Z,errorSchemas:A,pathMappings:U}}function sH(H,J){let Y={};for(let[$,U]of Object.entries(H)){let W=e($);Y[W]=HH(U,W,J)}let X=['import { z } from "zod";',""];for(let[$,U]of Object.entries(Y)){let W=$.replace(/[^a-zA-Z0-9]/g,"_");if(Object.keys(U.requestSchemas).length>0){X.push(`// Request schemas for ${$}`);for(let[Z,A]of Object.entries(U.requestSchemas))X.push(`const ${W}_request_${Z} = ${A.code};`);X.push("")}if(Object.keys(U.responseSchemas).length>0){X.push(`// Response schemas for ${$}`);for(let[Z,A]of Object.entries(U.responseSchemas))X.push(`const ${W}_response_${Z} = ${A.code};`);X.push("")}if(Object.keys(U.errorSchemas).length>0){X.push(`// Error schemas for ${$}`);for(let[Z,A]of Object.entries(U.errorSchemas))X.push(`const ${W}_error_${Z} = ${A.code};`);X.push("")}}X.push("// Exported schemas");for(let[$,U]of Object.entries(Y)){let W=$.replace(/[^a-zA-Z0-9]/g,"_"),Z=Object.keys(U.requestSchemas).map((M)=>` ${k(M)}: ${W}_request_${M}`).join(`,
49
+ `);X.push(`export const ${W}_requestSchemas = {`),X.push(Z||""),X.push("};"),X.push("");let A=Object.keys(U.responseSchemas).map((M)=>` ${k(M)}: ${W}_response_${M}`).join(`,
50
+ `);X.push(`export const ${W}_responseSchemas = {`),X.push(A||""),X.push("};"),X.push("");let _=Object.keys(U.errorSchemas).map((M)=>` ${k(M)}: ${W}_error_${M}`).join(`,
51
+ `);X.push(`export const ${W}_errorSchemas = {`),X.push(_||""),X.push("};"),X.push("");let L=["post","put","patch","delete"];for(let M of L){let G=[],V=U.pathMappings[M];for(let[K,x]of Object.entries(V))if(x.schemaName&&U.requestSchemas[x.schemaName])G.push(` ${k(K)}: ${W}_request_${x.schemaName}`);if(G.length>0)X.push(`export const ${W}_${M}PathSchemas = {`),X.push(G.join(`,
52
+ `)),X.push("};"),X.push("");else X.push(`export const ${W}_${M}PathSchemas = {};`),X.push("")}}let Q=Object.keys(Y);if(Q.length===1){let $=Q[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 Q){let U=$.replace(/[^a-zA-Z0-9]/g,"_");X.push(` ${k($)}: {`),X.push(` request: ${U}_requestSchemas,`),X.push(` response: ${U}_responseSchemas,`),X.push(` error: ${U}_errorSchemas,`),X.push(" },")}if(X.push("};"),Q.length>0){let U=Q[0].replace(/[^a-zA-Z0-9]/g,"_");X.push(""),X.push("// Default server exports (first server)"),X.push(`export const requestSchemas = ${U}_requestSchemas;`),X.push(`export const responseSchemas = ${U}_responseSchemas;`),X.push(`export const errorSchemas = ${U}_errorSchemas;`),X.push(""),X.push("// Path to schema mappings (first server)"),X.push(`export const postPathSchemas = ${U}_postPathSchemas;`),X.push(`export const putPathSchemas = ${U}_putPathSchemas;`),X.push(`export const patchPathSchemas = ${U}_patchPathSchemas;`),X.push(`export const deletePathSchemas = ${U}_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(`
53
+ `)}function aH(H,J){let Y={};for(let[Q,$]of Object.entries(H)){let U=e(Q);Y[U]=HH($,U,J)}let X=['import "@devup-api/zod";','import type { z } from "zod";',"",'declare module "@devup-api/zod" {'];for(let[Q,$]of Object.entries(Y)){if(Object.keys($.requestSchemas).length>0){X.push(" interface DevupZodRequestSchemas {"),X.push(` ${k(Q)}: {`);for(let[U,W]of Object.entries($.requestSchemas))X.push(` ${k(U)}: ${W.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.responseSchemas).length>0){X.push(" interface DevupZodResponseSchemas {"),X.push(` ${k(Q)}: {`);for(let[U,W]of Object.entries($.responseSchemas))X.push(` ${k(U)}: ${W.type};`);X.push(" };"),X.push(" }"),X.push("")}if(Object.keys($.errorSchemas).length>0){X.push(" interface DevupZodErrorSchemas {"),X.push(` ${k(Q)}: {`);for(let[U,W]of Object.entries($.errorSchemas))X.push(` ${k(U)}: ${W.type};`);X.push(" };"),X.push(" }"),X.push("")}}return X.push("}"),X.join(`
54
+ `)}export{QH as parseDevupTag,MH as parseDevupOperations,l as parseCrudConfigsFromMultiple,VH as parseCrudConfigs,aH as generateZodTypeDeclarations,sH as generateZodSchemas,oH as generateInterface,uH as generateCrudConfigTypes,vH as generateCrudConfigCode,UH as extractPathParams,jH as createUrlMap,GH as buildCrudConfigs};
@@ -1 +1 @@
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,CAmBzD"}
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,CAyBzD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devup-api/generator",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -20,7 +20,7 @@
20
20
  "access": "public"
21
21
  },
22
22
  "dependencies": {
23
- "@devup-api/core": "^0.1.11",
23
+ "@devup-api/core": "^0.1.12",
24
24
  "@devup-api/utils": "^0.1.7"
25
25
  },
26
26
  "devDependencies": {