@bitstack/ng-query-codegen-openapi 0.0.31-alpha.1 → 0.0.31-alpha.3

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.
package/lib/bin/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- var I=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Ne=Object.prototype.hasOwnProperty;var K=(r,t)=>()=>(r&&(t=r(r=0)),t);var Re=(r,t)=>{for(var e in t)I(r,e,{get:t[e],enumerable:!0})},Se=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ce(t))!Ne.call(r,o)&&o!==e&&I(r,o,{get:()=>t[o],enumerable:!(n=$e(t,o))||n.enumerable});return r};var Ee=r=>Se(I({},"__esModule",{value:!0}),r);import{fileURLToPath as Fe}from"node:url";var we,g,c=K(()=>{"use strict";we=()=>Fe(import.meta.url),g=we()});var ie={};Re(ie,{argumentMatches:()=>Le,defaultIsDataResponse:()=>Be,getOperationName:()=>S,getOverrides:()=>M,getTags:()=>ze,operationMatches:()=>oe});import{getOperationName as _e}from"oazapfts/generate";function Be(r,t){if(t&&r==="default")return!0;let e=Number(r);return!Number.isNaN(e)&&e>=200&&e<300}function S({verb:r,path:t}){return _e(r,t,void 0)}function ze({verb:r,pathItem:t}){return r?t[r]?.tags||[]:[]}function ne(r){let t=Array.isArray(r)?r:[r];return function(n){return r?t.some(o=>typeof o=="string"?o===n:o?.test(n)):!0}}function oe(r){let t=typeof r=="function"?r:ne(r);return function(n){if(!r)return!0;let o=S(n);return t(o,n)}}function Le(r){let t=typeof r=="function"?r:ne(r);return function(n){if(!r||n.in==="path")return!0;let o=n.name;return t(o,n)}}function M(r,t){return t?.find(e=>oe(e.pattern)(r))}var V=K(()=>{"use strict";c()});c();import j from"commander";import{createRequire as nt}from"node:module";c();import qe from"commander";import{createRequire as je}from"node:module";import{resolve as k}from"node:path";import{existsSync as G,rmSync as Ie,readdirSync as Ge,statSync as De,mkdirSync as Me}from"node:fs";import Q from"node:path";var O=je(g);function Ve(r){let t=new Map;if(!G(r))return t;function e(n){try{let o=Ge(n);for(let s of o){let a=Q.join(n,s);if(De(a).isDirectory())e(a);else if(s==="enhanceEndpoints.ts"){let u=O("node:fs").readFileSync(a);t.set(a,u)}}}catch{}}return e(r),t}function Ke(r){for(let[t,e]of r)try{let n=Q.dirname(t);G(n)||Me(n,{recursive:!0}),O("node:fs").writeFileSync(t,e)}catch(n){console.warn(`Failed to restore ${t}:`,n)}}function U(r){let t=["/","/usr","/etc","/var","/home","/Users",".",".."],e=k(r);if(t.some(n=>e===k(n))&&(console.error(`Dangerous path detected: ${e}. Refusing to delete.`),process.exit(1)),G(r)){console.log(`Cleaning output directory: ${r}`);let n=Ve(r);Ie(r,{recursive:!0,force:!0}),n.size>0&&(Ke(n),console.log(`Protected ${n.size} enhanceEndpoints.ts file(s) from deletion`)),console.log(`Directory cleaned: ${r}`)}}function W(){try{if(O.resolve("esbuild")&&O.resolve("esbuild-runner"))return O("esbuild-runner/register"),!0}catch{}try{if(O.resolve("typescript")&&O.resolve("ts-node"))return O("ts-node").register({transpileOnly:!0,compilerOptions:{target:"es6",module:"commonjs"}}),!0}catch{}return!1}function _(r){(!r||!/\.([mc]?(jsx?|tsx?)|jsonc?)?$/.test(r))&&(console.error("Please provide a valid configuration file."),qe.help())}function B(r,t){/\.[mc]?tsx?$/.test(r)&&!t&&(console.error("Encountered a TypeScript config file, but neither esbuild-runner nor ts-node are installed."),process.exit(1))}import{dirname as ot,resolve as it}from"node:path";c();c();import P from"node:path";import fe from"typescript";c();c();function $(r){return r.replace(r[0],r[0].toUpperCase())}c();import D from"node:fs";import ke from"node:path";c();function z(r){try{new URL(r)}catch{return!1}return!0}async function L(r,t){if(!z(r))throw new Error(`remoteFile must be a valid URL: ${r}`);try{let e=ke.dirname(t);D.existsSync(e)||await D.promises.mkdir(e,{recursive:!0});let n=await fetch(r);if(!n.ok)throw new Error(`Failed to download schema from ${r}: ${n.statusText}`);let o=await n.text();return await D.promises.writeFile(t,o,"utf-8"),console.log(`Schema downloaded from ${r} to ${t}`),t}catch(e){throw console.error(`Error downloading schema from ${r}:`,e),e}}c();c();var H=["get","put","post","delete","options","head","patch","trace"];function Z(r){return Object.entries(r.paths).flatMap(([t,e])=>e?Object.entries(e).filter(n=>H.includes(n[0])).map(([n,o])=>({path:t,verb:n,pathItem:e,operation:o})):[])}c();import Qe from"@apidevtools/swagger-parser";import Ue from"swagger2openapi";async function Y(r,t){let e=await Qe.bundle(r,{resolve:{http:t}});return"openapi"in e&&e.openapi.startsWith("3")?e:(await Ue.convertObj(e,{})).openapi}c();function J(r,t,e,n){return n?n(r,t):e?.type?e.type==="query":r==="get"}var C=class{docCache={};async getDocument(t,e){if(this.docCache[t])return this.docCache[t];let n=await Y(t,e);return this.docCache[t]=n,n}async downloadSchema(t,e){return L(t,e)}getPaths(t){return Object.keys(t.paths||{})}clearCache(){this.docCache={}}};c();import X from"lodash.camelcase";var N=class{groupPaths(t,e){let{groupKeyMatch:n,outputDir:o}=e,s=t.reduce((p,u)=>{let i=n(u),m=i?X(i):"_common";return p[m]||(p[m]=[]),p[m].push(u),p},{}),a={};for(let[p,u]of Object.entries(s))a[p]={groupKey:p,paths:u,outputPath:`${o}/${p}/query.service.ts`};return a}createGroupFilter(t,e){return(n,o)=>{let s=o.path,a=X(e.groupKeyMatch(s)||"");return a!==t&&(a||"_common")!==t?!1:e.filterEndpoint?e.filterEndpoint(n,s,t):!0}}};c();import re from"node:fs";import v from"node:path";c();import We from"node:path";import ee from"node:fs";async function te(r){let t=We.dirname(r);ee.existsSync(t)||await ee.promises.mkdir(t,{recursive:!0})}var R=class{async writeFile(t,e){try{let n=v.resolve(process.cwd(),t);return v.basename(n)==="enhanceEndpoints.ts"&&re.existsSync(n)?{path:n,success:!0}:(await te(n),re.writeFileSync(n,e),{path:n,success:!0})}catch(n){return{path:t,success:!1,error:n}}}async writeFiles(t){let e=[];for(let[n,o]of Object.entries(t)){let s=await this.writeFile(n,o);e.push(s)}return e}async writeGroupFiles(t,e){let n={};return e.types&&(n[v.join(t,"types.ts")]=e.types),e.queryService&&(n[v.join(t,"query.generated.ts")]=e.queryService),e.enhanceEndpoints&&(n[v.join(t,"enhanceEndpoints.ts")]=e.enhanceEndpoints),e.index&&(n[v.join(t,"index.ts")]=e.index),this.writeFiles(n)}async writeSharedFiles(t,e){let n={};return e.commonTypes&&(n[v.join(t,"common-types.ts")]=e.commonTypes),e.doNotModify&&(n[v.join(t,"DO_NOT_MODIFY.md")]=e.doNotModify),e.utils&&(n[v.join(t,"utils.ts")]=e.utils),this.writeFiles(n)}async writeSchemaFile(t,e){let n={};return n[v.join(t,"schema.ts")]=e,this.writeFiles(n)}};c();import He from"oazapfts/generate";var E=class{constructor(t,e){this.v3Doc=t;this.apiGen=new He(t,{unionUndefined:e.unionUndefined,mergeReadWriteOnly:e.mergeReadWriteOnly})}apiGen;initialize(){this.apiGen.spec.components?.schemas&&(Object.keys(this.apiGen.spec.components.schemas).forEach(t=>{let e=this.apiGen.spec.components.schemas[t];e&&typeof e=="object"&&"title"in e&&delete e.title}),this.apiGen.preprocessComponents(this.apiGen.spec.components.schemas),Object.keys(this.apiGen.spec.components.schemas).forEach(t=>{try{this.apiGen.getRefAlias({$ref:`#/components/schemas/${t}`})}catch{}}))}getOperationDefinitions(t){let{operationMatches:e}=(V(),Ee(ie));return Z(this.v3Doc).filter(e(t))}getApiGenerator(){return this.apiGen}getDocument(){return this.v3Doc}getSchemaTypeNames(){return new Set}};c();function se(){return`/* eslint-disable */
2
+ var I=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var Ee=Object.prototype.hasOwnProperty;var V=(n,t)=>()=>(n&&(t=n(n=0)),t);var Re=(n,t)=>{for(var e in t)I(n,e,{get:t[e],enumerable:!0})},Se=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $e(t))!Ee.call(n,o)&&o!==e&&I(n,o,{get:()=>t[o],enumerable:!(r=Pe(t,o))||r.enumerable});return n};var qe=n=>Se(I({},"__esModule",{value:!0}),n);import{fileURLToPath as Fe}from"node:url";var we,g,c=V(()=>{"use strict";we=()=>Fe(import.meta.url),g=we()});var ie={};Re(ie,{argumentMatches:()=>He,defaultIsDataResponse:()=>ze,getOperationName:()=>E,getOverrides:()=>K,getTags:()=>Le,operationMatches:()=>oe});import{getOperationName as Be}from"oazapfts/generate";function ze(n,t){if(t&&n==="default")return!0;let e=Number(n);return!Number.isNaN(e)&&e>=200&&e<300}function E({verb:n,path:t}){return Be(n,t,void 0)}function Le({verb:n,pathItem:t}){return n?t[n]?.tags||[]:[]}function ne(n){let t=Array.isArray(n)?n:[n];return function(r){return n?t.some(o=>typeof o=="string"?o===r:o?.test(r)):!0}}function oe(n){let t=typeof n=="function"?n:ne(n);return function(r){if(!n)return!0;let o=E(r);return t(o,r)}}function He(n){let t=typeof n=="function"?n:ne(n);return function(r){if(!n||r.in==="path")return!0;let o=r.name;return t(o,r)}}function K(n,t){return t?.find(e=>oe(e.pattern)(n))}var M=V(()=>{"use strict";c()});c();import j from"commander";import{createRequire as ot}from"node:module";c();import je from"commander";import{createRequire as Ie}from"node:module";import{resolve as k}from"node:path";import{existsSync as G,rmSync as Ge,readdirSync as De,statSync as Ke,mkdirSync as Me}from"node:fs";import Q from"node:path";var O=Ie(g);function Ve(n){let t=new Map;if(!G(n))return t;function e(r){try{let o=De(r);for(let s of o){let a=Q.join(r,s);if(Ke(a).isDirectory())e(a);else if(s==="enhanceEndpoints.ts"){let u=O("node:fs").readFileSync(a);t.set(a,u)}}}catch{}}return e(n),t}function ke(n){for(let[t,e]of n)try{let r=Q.dirname(t);G(r)||Me(r,{recursive:!0}),O("node:fs").writeFileSync(t,e)}catch(r){console.warn(`Failed to restore ${t}:`,r)}}function U(n){let t=["/","/usr","/etc","/var","/home","/Users",".",".."],e=k(n);if(t.some(r=>e===k(r))&&(console.error(`Dangerous path detected: ${e}. Refusing to delete.`),process.exit(1)),G(n)){console.log(`Cleaning output directory: ${n}`);let r=Ve(n);Ge(n,{recursive:!0,force:!0}),r.size>0&&(ke(r),console.log(`Protected ${r.size} enhanceEndpoints.ts file(s) from deletion`)),console.log(`Directory cleaned: ${n}`)}}function W(){try{if(O.resolve("esbuild")&&O.resolve("esbuild-runner"))return O("esbuild-runner/register"),!0}catch{}try{if(O.resolve("typescript")&&O.resolve("ts-node"))return O("ts-node").register({transpileOnly:!0,compilerOptions:{target:"es6",module:"commonjs"}}),!0}catch{}return!1}function _(n){(!n||!/\.([mc]?(jsx?|tsx?)|jsonc?)?$/.test(n))&&(console.error("Please provide a valid configuration file."),je.help())}function B(n,t){/\.[mc]?tsx?$/.test(n)&&!t&&(console.error("Encountered a TypeScript config file, but neither esbuild-runner nor ts-node are installed."),process.exit(1))}import{dirname as it,resolve as st}from"node:path";c();c();import F from"node:path";import he from"typescript";c();c();function N(n){return n.replace(n[0],n[0].toUpperCase())}c();import D from"node:fs";import Qe from"node:path";c();function z(n){try{new URL(n)}catch{return!1}return!0}async function L(n,t){if(!z(n))throw new Error(`remoteFile must be a valid URL: ${n}`);try{let e=Qe.dirname(t);D.existsSync(e)||await D.promises.mkdir(e,{recursive:!0});let r=await fetch(n);if(!r.ok)throw new Error(`Failed to download schema from ${n}: ${r.statusText}`);let o=await r.text();return await D.promises.writeFile(t,o,"utf-8"),console.log(`Schema downloaded from ${n} to ${t}`),t}catch(e){throw console.error(`Error downloading schema from ${n}:`,e),e}}c();c();var H=["get","put","post","delete","options","head","patch","trace"];function Z(n){return Object.entries(n.paths).flatMap(([t,e])=>e?Object.entries(e).filter(r=>H.includes(r[0])).map(([r,o])=>({path:t,verb:r,pathItem:e,operation:o})):[])}c();import Ue from"@apidevtools/swagger-parser";import We from"swagger2openapi";async function Y(n,t){let e=await Ue.bundle(n,{resolve:{http:t}});return"openapi"in e&&e.openapi.startsWith("3")?e:(await We.convertObj(e,{})).openapi}c();function J(n,t,e,r){return r?r(n,t):e?.type?e.type==="query":n==="get"}var A=class{docCache={};async getDocument(t,e){if(this.docCache[t])return this.docCache[t];let r=await Y(t,e);return this.docCache[t]=r,r}async downloadSchema(t,e){return L(t,e)}getPaths(t){return Object.keys(t.paths||{})}clearCache(){this.docCache={}}};c();import X from"lodash.camelcase";var P=class{groupPaths(t,e){let{groupKeyMatch:r,outputDir:o}=e,s=t.reduce((p,u)=>{let i=r(u),m=i?X(i):"_common";return p[m]||(p[m]=[]),p[m].push(u),p},{}),a={};for(let[p,u]of Object.entries(s))a[p]={groupKey:p,paths:u,outputPath:`${o}/${p}/query.service.ts`};return a}createGroupFilter(t,e){return(r,o)=>{let s=o.path,a=X(e.groupKeyMatch(s)||"");return a!==t&&(a||"_common")!==t?!1:e.filterEndpoint?e.filterEndpoint(r,s,t):!0}}};c();import re from"node:fs";import f from"node:path";c();import _e from"node:path";import ee from"node:fs";async function te(n){let t=_e.dirname(n);ee.existsSync(t)||await ee.promises.mkdir(t,{recursive:!0})}var $=class{async writeFile(t,e){try{let r=f.resolve(process.cwd(),t);return f.basename(r)==="enhanceEndpoints.ts"&&re.existsSync(r)?{path:r,success:!0}:(await te(r),re.writeFileSync(r,e),{path:r,success:!0})}catch(r){return{path:t,success:!1,error:r}}}async writeFiles(t){let e=[];for(let[r,o]of Object.entries(t)){let s=await this.writeFile(r,o);e.push(s)}return e}async writeGroupFiles(t,e){let r={};return e.types&&(r[f.join(t,"types.ts")]=e.types),e.queryService&&(r[f.join(t,"query.generated.ts")]=e.queryService),e.enhanceEndpoints&&(r[f.join(t,"enhanceEndpoints.ts")]=e.enhanceEndpoints),e.index&&(r[f.join(t,"index.ts")]=e.index),this.writeFiles(r)}async writeSharedFiles(t,e){let r={};return e.commonTypes&&(r[f.join(t,"common-types.ts")]=e.commonTypes),e.tagTypes&&(r[f.join(t,"tagTypes.ts")]=e.tagTypes),e.doNotModify&&(r[f.join(t,"DO_NOT_MODIFY.md")]=e.doNotModify),e.utils&&(r[f.join(t,"utils.ts")]=e.utils),this.writeFiles(r)}async writeSchemaFile(t,e){let r={};return r[f.join(t,"schema.ts")]=e,this.writeFiles(r)}};c();import Ze from"oazapfts/generate";var R=class{constructor(t,e){this.v3Doc=t;this.apiGen=new Ze(t,{unionUndefined:e.unionUndefined,mergeReadWriteOnly:e.mergeReadWriteOnly})}apiGen;initialize(){this.apiGen.spec.components?.schemas&&(Object.keys(this.apiGen.spec.components.schemas).forEach(t=>{let e=this.apiGen.spec.components.schemas[t];e&&typeof e=="object"&&"title"in e&&delete e.title}),this.apiGen.preprocessComponents(this.apiGen.spec.components.schemas),Object.keys(this.apiGen.spec.components.schemas).forEach(t=>{try{this.apiGen.getRefAlias({$ref:`#/components/schemas/${t}`})}catch{}}))}getOperationDefinitions(t){let{operationMatches:e}=(M(),qe(ie));return Z(this.v3Doc).filter(e(t))}getApiGenerator(){return this.apiGen}getDocument(){return this.v3Doc}getSchemaTypeNames(){return new Set}};c();function se(){return`/* eslint-disable */
3
3
  // [Warning] Generated automatically - do not edit manually
4
4
 
5
5
  export interface RequestOptions {
@@ -27,10 +27,10 @@ export type IRestFulEndpointsQueryReturn<TVariables> = TVariables extends void ?
27
27
  fetchOptions?: IRequestConfig;
28
28
  config?: QueryConfig;
29
29
  };
30
- `}c();import f from"typescript";function Ze(r){return r.charAt(0).toUpperCase()+r.slice(1)}function Ye(r,t,e){return f.transform(r,[n=>o=>f.visitNode(o,function s(a){return f.isIdentifier(a)&&a.text===t?f.factory.createIdentifier(e):f.visitEachChild(a,s,n)})]).transformed[0]}function ae(r){let t=f.createPrinter({newLine:f.NewLineKind.LineFeed}),e=f.createSourceFile("component-schema.ts","",f.ScriptTarget.Latest,!1,f.ScriptKind.TS),n=[],o={};return Object.entries(r).forEach(([s,a])=>{let p=Ze(s);o[s]=p;let u=Ye(a,s,p),i=t.printNode(f.EmitHint.Unspecified,u,e);n.push(i)}),`/* eslint-disable */
30
+ `}c();import h from"typescript";function Ye(n){return n.charAt(0).toUpperCase()+n.slice(1)}function Je(n,t,e){return h.transform(n,[r=>o=>h.visitNode(o,function s(a){return h.isIdentifier(a)&&a.text===t?h.factory.createIdentifier(e):h.visitEachChild(a,s,r)})]).transformed[0]}function ae(n){let t=h.createPrinter({newLine:h.NewLineKind.LineFeed}),e=h.createSourceFile("component-schema.ts","",h.ScriptTarget.Latest,!1,h.ScriptKind.TS),r=[],o={};return Object.entries(n).forEach(([s,a])=>{let p=Ye(s);o[s]=p;let u=Je(a,s,p),i=t.printNode(h.EmitHint.Unspecified,u,e);r.push(i)}),`/* eslint-disable */
31
31
  // [Warning] Generated automatically - do not edit manually
32
32
 
33
- ${n.join(`
33
+ ${r.join(`
34
34
  `)}
35
35
  `}c();function pe(){return`# \u8ACB\u52FF\u4FEE\u6539\u6B64\u8CC7\u6599\u593E
36
36
 
@@ -51,33 +51,33 @@ ${n.join(`
51
51
  \u9019\u4E9B\u6A94\u6848\u662F\u7531 @bitstack/ng-query-codegen-openapi \u7522\u751F\u5668\u6240\u5EFA\u7ACB\u3002
52
52
 
53
53
  \u5982\u6709\u7591\u554F\uFF0C\u8ACB\u53C3\u8003\u5C08\u6848\u6587\u4EF6\u6216\u806F\u7E6B\u958B\u767C\u5718\u968A\u3002
54
- `}c();import le from"typescript";c();V();import{supportDeepObjects as Je}from"oazapfts/generate";var F=class{constructor(t){this.options=t}extractEndpointInfos(t){return t.map(e=>this.extractSingleEndpointInfo(e))}extractSingleEndpointInfo(t){let{verb:e,path:n,operation:o}=t,{operationNameSuffix:s="",argSuffix:a="Req",responseSuffix:p="Res",queryMatch:u,endpointOverrides:i}=this.options,m=S({verb:e,path:n}),y=s?$(m+s):m,d=$(m+s+a),T=$(m+s+p),h=J(e,n,M(t,i),u),A=`${m.replace(/([A-Z])/g,"_$1").toUpperCase()}`,x=o.summary||`${e.toUpperCase()} ${n}`,{queryParams:be,pathParams:Oe,isVoidArg:xe,hasRequestBody:Te}=this.extractParameters(t),Pe=this.extractContentType(o),Ae=Array.isArray(o.tags)?o.tags:[];return{operationName:y,argTypeName:d,responseTypeName:T,isQuery:h,verb:e.toUpperCase(),path:n,queryKeyName:A,queryParams:be,pathParams:Oe,isVoidArg:xe,summary:x,contentType:Pe,hasRequestBody:Te,tags:Ae}}extractParameters(t){let{operation:e,pathItem:n}=t,o=this.resolveArray(e.parameters),s=this.resolveArray(n.parameters).filter(y=>!o.some(d=>d.name===y.name&&d.in===y.in)),a=Je([...s,...o]).filter(y=>y.in!=="header"),p=a.filter(y=>y.in==="query"),u=a.filter(y=>y.in==="path"),i=!!e.requestBody,m=p.length===0&&u.length===0&&!e.requestBody;return{queryParams:p,pathParams:u,isVoidArg:m,hasRequestBody:i}}resolveArray(t){return t?Array.isArray(t)?t:[t]:[]}extractContentType(t){if(!t.requestBody)return"application/json";let e=t.requestBody.content;if(!e||typeof e!="object")return"application/json";let n=Object.keys(e);return n.length===0?"application/json":n[0]}};c();var Xe=r=>r.charAt(0).toUpperCase()+r.slice(1);function ue(r,t,e,n){let o={};e&&Object.keys(e).forEach(i=>{if(o[i]=i,i.endsWith("Vo")){let m=i.slice(0,-2)+"VO";o[m]=i}if(i.endsWith("Dto")){let m=i.slice(0,-3)+"DTO";o[m]=i}});let s=`/* eslint-disable */
54
+ `}c();import le from"typescript";c();M();import{supportDeepObjects as Xe}from"oazapfts/generate";var S=class{constructor(t){this.options=t}extractEndpointInfos(t){return t.map(e=>this.extractSingleEndpointInfo(e))}extractSingleEndpointInfo(t){let{verb:e,path:r,operation:o}=t,{operationNameSuffix:s="",argSuffix:a="Req",responseSuffix:p="Res",queryMatch:u,endpointOverrides:i}=this.options,m=E({verb:e,path:r}),y=s?N(m+s):m,d=N(m+s+a),x=N(m+s+p),v=J(e,r,K(t,i),u),C=`${m.replace(/([A-Z])/g,"_$1").toUpperCase()}`,T=o.summary||`${e.toUpperCase()} ${r}`,{queryParams:Oe,pathParams:Te,isVoidArg:xe,hasRequestBody:Ce}=this.extractParameters(t),Ne=this.extractContentType(o),Ae=Array.isArray(o.tags)?o.tags:[];return{operationName:y,argTypeName:d,responseTypeName:x,isQuery:v,verb:e.toUpperCase(),path:r,queryKeyName:C,queryParams:Oe,pathParams:Te,isVoidArg:xe,summary:T,contentType:Ne,hasRequestBody:Ce,tags:Ae}}extractParameters(t){let{operation:e,pathItem:r}=t,o=this.resolveArray(e.parameters),s=this.resolveArray(r.parameters).filter(y=>!o.some(d=>d.name===y.name&&d.in===y.in)),a=Xe([...s,...o]).filter(y=>y.in!=="header"),p=a.filter(y=>y.in==="query"),u=a.filter(y=>y.in==="path"),i=!!e.requestBody,m=p.length===0&&u.length===0&&!e.requestBody;return{queryParams:p,pathParams:u,isVoidArg:m,hasRequestBody:i}}resolveArray(t){return t?Array.isArray(t)?t:[t]:[]}extractContentType(t){if(!t.requestBody)return"application/json";let e=t.requestBody.content;if(!e||typeof e!="object")return"application/json";let r=Object.keys(e);return r.length===0?"application/json":r[0]}};c();var et=n=>n.charAt(0).toUpperCase()+n.slice(1);function ue(n,t,e,r){let o={};e&&Object.keys(e).forEach(i=>{if(o[i]=i,i.endsWith("Vo")){let m=i.slice(0,-2)+"VO";o[m]=i}if(i.endsWith("Dto")){let m=i.slice(0,-3)+"DTO";o[m]=i}});let s=`/* eslint-disable */
55
55
  // [Warning] Generated automatically - do not edit manually
56
56
 
57
57
  `;e&&Object.keys(e).length>0&&(s+=`import * as Schema from "../schema";
58
58
  `),s+=`
59
- `;let p=[],u=[];return r.forEach(i=>{let m=i.argTypeName,y=i.responseTypeName;if(m){let d=et(i,n,o);d.trim()===""?u.push(`export type ${m} = void;`,""):u.push(`export type ${m} = {`,d,"};","")}if(y){let d=tt(i,n,o);d.trim()===""?u.push(`export type ${y} = void;`,""):u.push(`export type ${y} = {`,d,"};","")}}),u.length>0&&p.push(u.join(`
59
+ `;let p=[],u=[];return n.forEach(i=>{let m=i.argTypeName,y=i.responseTypeName;if(m){let d=tt(i,r,o);d.trim()===""?u.push(`export type ${m} = void;`,""):u.push(`export type ${m} = {`,d,"};","")}if(y){let d=rt(i,r,o);d.trim()===""?u.push(`export type ${y} = void;`,""):u.push(`export type ${y} = {`,d,"};","")}}),u.length>0&&p.push(u.join(`
60
60
  `)),p.length===0&&p.push("// \u6B64\u6A94\u6848\u7528\u65BC\u5B9A\u7FA9 API \u76F8\u95DC\u7684\u985E\u578B","// \u985E\u578B\u5B9A\u7FA9\u6703\u6839\u64DA OpenAPI Schema \u81EA\u52D5\u751F\u6210",""),s+p.join(`
61
61
 
62
- `)}function et(r,t,e={}){let n=[];r.queryParams&&r.queryParams.length>0&&r.queryParams.forEach(s=>{let a=s.required?"":"?",p=ce(s,e);n.push(` ${s.name}${a}: ${p};`)}),r.pathParams&&r.pathParams.length>0&&r.pathParams.forEach(s=>{let a=s.required?"":"?",p=ce(s,e);n.push(` ${s.name}${a}: ${p};`)});let o=t?.find(s=>s.operation?.operationId===r.operationName||s.operation?.operationId===r.operationName.toLowerCase()||s.verb===r.verb.toLowerCase()&&s.path===r.path);if(o?.operation?.requestBody){let a=o.operation.requestBody.content,p=a["application/json"]||a["*/*"],u=a["multipart/form-data"]||a["application/x-www-form-urlencoded"];if(p?.schema){let i=b(p.schema,e,1);n.push(` body: ${i};`)}else if(u?.schema){let i=b(u.schema,e,1);n.push(` body: ${i};`)}else{let i=Object.values(a)[0];if(i?.schema){let m=b(i.schema,e,1);n.push(` body: ${m};`)}else n.push(" body?: any; // Request body from OpenAPI")}}return n.length===0?"":n.join(`
63
- `)}function tt(r,t,e={}){let n=[],o=t?.find(s=>s.operation?.operationId===r.operationName||s.operation?.operationId===r.operationName.toLowerCase()||s.verb===r.verb.toLowerCase()&&s.path===r.path);if(o?.operation?.responses){let s=o.operation.responses[200]||o.operation.responses[201];if(s?.content){let a=s.content["application/json"]||s.content["*/*"]||Object.values(s.content)[0];if(a?.schema){let p=rt(a.schema,e);n.push(...p)}else n.push(" // Success response from OpenAPI"),n.push(" data?: any;")}}return n.length===0?"":n.join(`
64
- `)}function rt(r,t={}){let e=[];if(r.type==="object"&&r.properties){let n=r.required||[];Object.entries(r.properties).forEach(([o,s])=>{let p=n.includes(o)?"":"?",u=b(s,t,1),m=/[^a-zA-Z0-9_$]/.test(o)?`"${o}"`:o;s.description&&e.push(` /** ${s.description} */`),e.push(` ${m}${p}: ${u};`)})}return e}function b(r,t={},e=0){if(!r)return"any";if(r.$ref){let o=r.$ref;if(o.startsWith("#/components/schemas/")){let s=o.replace("#/components/schemas/",""),a=t[s]||s,u=`Schema.${Xe(a)}`;return r.nullable?`${u} | null`:u}}let n;switch(r.type){case"string":r.enum?n=r.enum.map(a=>`"${a}"`).join(" | "):r.format==="binary"?n="Blob":n="string";break;case"number":case"integer":n="number";break;case"boolean":n="boolean";break;case"array":let o=r.items?b(r.items,t,e):"any";n=o.includes("|")?`(${o})[]`:`${o}[]`;break;case"object":if(r.properties){let a=Object.entries(r.properties);if(a.length===0)r.additionalProperties?n=`Record<string, ${r.additionalProperties===!0?"any":b(r.additionalProperties,t,e)}>`:n="{}";else{let p=" ".repeat(e+1),u=" ".repeat(e),i=[];a.forEach(([m,y])=>{let T=(r.required||[]).includes(m)?"":"?",h=b(y,t,e+1),x=/[^a-zA-Z0-9_$]/.test(m)?`"${m}"`:m;y.description&&i.push(`${p}/** ${y.description} */`),i.push(`${p}${x}${T}: ${h};`)}),n=`{
62
+ `)}function tt(n,t,e={}){let r=[];n.queryParams&&n.queryParams.length>0&&n.queryParams.forEach(s=>{let a=s.required?"":"?",p=ce(s,e);r.push(` ${s.name}${a}: ${p};`)}),n.pathParams&&n.pathParams.length>0&&n.pathParams.forEach(s=>{let a=s.required?"":"?",p=ce(s,e);r.push(` ${s.name}${a}: ${p};`)});let o=t?.find(s=>s.operation?.operationId===n.operationName||s.operation?.operationId===n.operationName.toLowerCase()||s.verb===n.verb.toLowerCase()&&s.path===n.path);if(o?.operation?.requestBody){let a=o.operation.requestBody.content,p=a["application/json"]||a["*/*"],u=a["multipart/form-data"]||a["application/x-www-form-urlencoded"];if(p?.schema){let i=b(p.schema,e,1);r.push(` body: ${i};`)}else if(u?.schema){let i=b(u.schema,e,1);r.push(` body: ${i};`)}else{let i=Object.values(a)[0];if(i?.schema){let m=b(i.schema,e,1);r.push(` body: ${m};`)}else r.push(" body?: any; // Request body from OpenAPI")}}return r.length===0?"":r.join(`
63
+ `)}function rt(n,t,e={}){let r=[],o=t?.find(s=>s.operation?.operationId===n.operationName||s.operation?.operationId===n.operationName.toLowerCase()||s.verb===n.verb.toLowerCase()&&s.path===n.path);if(o?.operation?.responses){let s=o.operation.responses[200]||o.operation.responses[201];if(s?.content){let a=s.content["application/json"]||s.content["*/*"]||Object.values(s.content)[0];if(a?.schema){let p=nt(a.schema,e);r.push(...p)}else r.push(" // Success response from OpenAPI"),r.push(" data?: any;")}}return r.length===0?"":r.join(`
64
+ `)}function nt(n,t={}){let e=[];if(n.type==="object"&&n.properties){let r=n.required||[];Object.entries(n.properties).forEach(([o,s])=>{let p=r.includes(o)?"":"?",u=b(s,t,1),m=/[^a-zA-Z0-9_$]/.test(o)?`"${o}"`:o;s.description&&e.push(` /** ${s.description} */`),e.push(` ${m}${p}: ${u};`)})}return e}function b(n,t={},e=0){if(!n)return"any";if(n.$ref){let o=n.$ref;if(o.startsWith("#/components/schemas/")){let s=o.replace("#/components/schemas/",""),a=t[s]||s,u=`Schema.${et(a)}`;return n.nullable?`${u} | null`:u}}let r;switch(n.type){case"string":n.enum?r=n.enum.map(a=>`"${a}"`).join(" | "):n.format==="binary"?r="Blob":r="string";break;case"number":case"integer":r="number";break;case"boolean":r="boolean";break;case"array":let o=n.items?b(n.items,t,e):"any";r=o.includes("|")?`(${o})[]`:`${o}[]`;break;case"object":if(n.properties){let a=Object.entries(n.properties);if(a.length===0)n.additionalProperties?r=`Record<string, ${n.additionalProperties===!0?"any":b(n.additionalProperties,t,e)}>`:r="{}";else{let p=" ".repeat(e+1),u=" ".repeat(e),i=[];a.forEach(([m,y])=>{let x=(n.required||[]).includes(m)?"":"?",v=b(y,t,e+1),T=/[^a-zA-Z0-9_$]/.test(m)?`"${m}"`:m;y.description&&i.push(`${p}/** ${y.description} */`),i.push(`${p}${T}${x}: ${v};`)}),r=`{
65
65
  ${i.join(`
66
66
  `)}
67
- ${u}}`}}else r.additionalProperties?n=`Record<string, ${r.additionalProperties===!0?"any":b(r.additionalProperties,t,e)}>`:n="any";break;default:n="any";break}return r.nullable?`${n} | null`:n}function ce(r,t={}){return r.schema?b(r.schema,t):"any"}c();function me(r,t){let{groupKey:e,refetchOnMountOrArgChange:n=60}=t,o=e?`${e.charAt(0).toUpperCase()+e.slice(1)}QueryService`:"QueryService",s=e?`${e.charAt(0).toUpperCase()+e.slice(1)}ApiService`:"ApiService",a=r.filter(i=>i.isQuery).map(i=>`
67
+ ${u}}`}}else n.additionalProperties?r=`Record<string, ${n.additionalProperties===!0?"any":b(n.additionalProperties,t,e)}>`:r="any";break;default:r="any";break}return n.nullable?`${r} | null`:r}function ce(n,t={}){return n.schema?b(n.schema,t):"any"}c();function me(n,t){let{groupKey:e,refetchOnMountOrArgChange:r=60}=t,o=e?`${e.charAt(0).toUpperCase()+e.slice(1)}QueryService`:"QueryService",s=e?`${e.charAt(0).toUpperCase()+e.slice(1)}ApiService`:"ApiService",a=n.filter(i=>i.isQuery).map(i=>`
68
68
  /**
69
69
  * ${i.summary}
70
70
  */
71
71
  ${i.operationName}Query(${i.argTypeName!=="VoidApiArg"?`args: IRestFulEndpointsQueryReturn<${i.argTypeName}>`:""}): Observable<QueryState<${i.responseTypeName}>> {
72
72
  return this.ntkQuery.query<${i.responseTypeName}, ${i.argTypeName!=="VoidApiArg"?`IRestFulEndpointsQueryReturn<${i.argTypeName}>`:"void"}>({
73
- queryKey: [ECacheKeys.${i.queryKeyName}${i.argTypeName!=="VoidApiArg"?", args.variables":""}],
73
+ queryKey: [ECacheTagTypes.${i.queryKeyName}${i.argTypeName!=="VoidApiArg"?", args.variables":""}],
74
74
  queryFn: () => {
75
75
  return this.apiService.${i.operationName}(${i.argTypeName!=="VoidApiArg"?"args":""});
76
76
  },
77
77
  fetchOptions: args?.fetchOptions,
78
78
  config: args?.config,
79
79
  })${i.argTypeName!=="VoidApiArg"?"(args)":"()"};
80
- }`).join(""),p=r.filter(i=>!i.isQuery).map(i=>`
80
+ }`).join(""),p=n.filter(i=>!i.isQuery).map(i=>`
81
81
  /**
82
82
  * ${i.summary}
83
83
  */
@@ -91,7 +91,7 @@ ${u}}`}}else r.additionalProperties?n=`Record<string, ${r.additionalProperties==
91
91
  return this.apiService.${i.operationName}(${i.argTypeName!=="VoidApiArg"?"args":""});
92
92
  },
93
93
  });
94
- }`).join(""),u=r.filter(i=>i.isQuery).map(i=>`
94
+ }`).join(""),u=n.filter(i=>i.isQuery).map(i=>`
95
95
  /**
96
96
  * ${i.summary}
97
97
  */
@@ -102,7 +102,7 @@ ${u}}`}}else r.additionalProperties?n=`Record<string, ${r.additionalProperties==
102
102
  trigger: (${i.argTypeName!=="VoidApiArg"?"args, ":""}options = {}) => {
103
103
  const { skipCache = true } = options;
104
104
  if (!skipCache) {
105
- const cachedResult = this.ntkQuery.getQueryCache<${i.responseTypeName}>([ECacheKeys.${i.queryKeyName}${i.argTypeName!=="VoidApiArg"?", args.variables":""}]);
105
+ const cachedResult = this.ntkQuery.getQueryCache<${i.responseTypeName}>([ECacheTagTypes.${i.queryKeyName}${i.argTypeName!=="VoidApiArg"?", args.variables":""}]);
106
106
  if (cachedResult) {
107
107
  return cachedResult;
108
108
  }
@@ -117,10 +117,10 @@ import {Injectable, inject} from '@angular/core';
117
117
  import {Observable} from 'rxjs';
118
118
  import {HttpErrorResponse} from '@angular/common/http';
119
119
  import {NtkQueryService, MutationState, QueryState, MutationResponse} from '@core/ntk-query';
120
- import {ECacheKeys} from '../cache-keys';
121
- import {${s}} from './api.service';
120
+ import {ECacheTagTypes} from '../tagTypes';
121
+ import {${s}} from './enhanceEndpoints';
122
122
  import {IRestFulEndpointsQueryReturn, RequestOptions} from '../common-types';
123
- import {${r.map(i=>` ${i.argTypeName}, ${i.responseTypeName}`).join(",")}} from './types';
123
+ import {${n.map(i=>` ${i.argTypeName}, ${i.responseTypeName}`).join(",")}} from './types';
124
124
 
125
125
  @Injectable({
126
126
  providedIn: 'root',
@@ -130,29 +130,29 @@ export class ${o} {
130
130
  private ntkQuery = inject(NtkQueryService);
131
131
  ${a}${p}${u}
132
132
  }
133
- `}c();function ge(r,t){let{apiConfiguration:e,httpClient:n,groupKey:o}=t,s=o?`${o.charAt(0).toUpperCase()+o.slice(1)}ApiService`:"ApiService";return`/* eslint-disable */
133
+ `}c();function ge(n,t){let{apiConfiguration:e,httpClient:r,groupKey:o}=t,s=o?`${o.charAt(0).toUpperCase()+o.slice(1)}ApiService`:"ApiService";return`/* eslint-disable */
134
134
  // [Warning] Generated automatically - do not edit manually
135
135
 
136
- import { ${n.importReturnTypeName} } from '${n.file}';
136
+ import { ${r.importReturnTypeName} } from '${r.file}';
137
137
  import { Injectable, inject } from '@angular/core';
138
138
  import { Observable } from 'rxjs';
139
139
  import { ${e.importName} } from '${e.file}';
140
140
  import { RequestOptions, IRestFulEndpointsQueryReturn } from '../common-types';
141
141
  import { withoutUndefined } from '../utils';
142
- import {${r.map(a=>` ${a.argTypeName}, ${a.responseTypeName}`).join(",")} } from './types';
142
+ import {${n.map(a=>` ${a.argTypeName}, ${a.responseTypeName}`).join(",")} } from './types';
143
143
 
144
144
  @Injectable({
145
145
  providedIn: 'root',
146
146
  })
147
147
  export class ${s} {
148
148
  private config = inject(${e.importName});
149
- private http = inject(${n.importReturnTypeName});
149
+ private http = inject(${r.importReturnTypeName});
150
150
 
151
- ${r.map(a=>{let p=a.verb.toUpperCase()==="GET",u=a.argTypeName!=="VoidApiArg",i=a.hasRequestBody,m=h=>h.includes("{")&&u?`\`\${this.config.rootUrl}${h.replace(/\{([^}]+)\}/g,"${args.variables.$1}")}\``:`\`\${this.config.rootUrl}${h}\``,y=a.queryParams.length>0,d=!p&&u,T=()=>{let h="";return a.queryParams&&a.queryParams.length>0&&(h=`params: {${a.queryParams.map(x=>`${x.name}: args.variables.${x.name},`).join(`
151
+ ${n.map(a=>{let p=a.verb.toUpperCase()==="GET",u=a.argTypeName!=="VoidApiArg",i=a.hasRequestBody,m=v=>v.includes("{")&&u?`\`\${this.config.rootUrl}${v.replace(/\{([^}]+)\}/g,"${args.variables.$1}")}\``:`\`\${this.config.rootUrl}${v}\``,y=a.queryParams.length>0,d=!p&&u,x=()=>{let v="";return a.queryParams&&a.queryParams.length>0&&(v=`params: {${a.queryParams.map(T=>`${T.name}: args.variables.${T.name},`).join(`
152
152
  `)}},`),`{
153
153
  ...args.fetchOptions,
154
154
  headers: { 'Content-Type': '${a.contentType}', ...args.fetchOptions?.headers },
155
- ${h}${a.hasRequestBody?"body: args.variables.body,":""}
155
+ ${v}${a.hasRequestBody?"body: args.variables.body,":""}
156
156
  }`};return`
157
157
  /**
158
158
  * ${a.summary}
@@ -161,10 +161,10 @@ ${r.map(a=>{let p=a.verb.toUpperCase()==="GET",u=a.argTypeName!=="VoidApiArg",i=
161
161
  ${u?`args: IRestFulEndpointsQueryReturn<${a.argTypeName}>, `:""}
162
162
  ): Observable<${a.responseTypeName}> {
163
163
  const url = ${m(a.path)};
164
- return this.http.request('${a.verb.toLowerCase()}', url, ${T()});
164
+ return this.http.request('${a.verb.toLowerCase()}', url, ${x()});
165
165
  }`}).join("")}
166
166
  }
167
- `}var w=class{constructor(t,e){this.parserService=t;this.options=e;this.infoExtractor=new F(e)}infoExtractor;async generate(){let t=this.parserService.getOperationDefinitions(this.options.filterEndpoints),e=this.infoExtractor.extractEndpointInfos(t);return this.generateRtkQueryCode(e)}generateRtkQueryCode(t){let e=this.generateTypes(t),n=me(t,this.options),o=ge(t,this.options),s=this.generateIndex(),a=t.map(u=>u.operationName),p=new Set;return t.forEach(u=>{u.tags&&Array.isArray(u.tags)&&u.tags.forEach(i=>p.add(i))}),{operationNames:a,tags:Array.from(p),files:{types:e,queryService:n,index:s,enhanceEndpoints:o}}}generateTypes(t){let e={...this.options,apiConfiguration:this.options.apiConfiguration||{file:"@/store/webapi",importName:"WebApiConfiguration"}},o=this.parserService.getApiGenerator().aliases.reduce((a,p)=>{if(le.isInterfaceDeclaration(p)||le.isTypeAliasDeclaration(p)){let u=p.name.text;return{...a,[u]:p}}return a},{}),s=this.parserService.getOperationDefinitions(this.options.filterEndpoints);return ue(t,e,o,s)}generateIndex(){let t=this.options.groupKey||"";return`/* eslint-disable */
167
+ `}var q=class{constructor(t,e){this.parserService=t;this.options=e;this.infoExtractor=new S(e)}infoExtractor;async generate(){let t=this.parserService.getOperationDefinitions(this.options.filterEndpoints),e=this.infoExtractor.extractEndpointInfos(t);return this.generateRtkQueryCode(e)}generateRtkQueryCode(t){let e=this.generateTypes(t),r=me(t,this.options),o=ge(t,this.options),s=this.generateIndex(),a=t.filter(i=>i.isQuery).map(i=>({operationName:i.operationName,queryKeyName:i.queryKeyName,groupKey:this.options.groupKey||"_common"})),p=t.map(i=>i.operationName),u=new Set;return t.forEach(i=>{i.tags&&Array.isArray(i.tags)&&i.tags.forEach(m=>u.add(m))}),{operationNames:p,tags:Array.from(u),files:{types:e,queryService:r,index:s,enhanceEndpoints:o,allEndpointCacheKeys:a}}}generateTypes(t){let e={...this.options,apiConfiguration:this.options.apiConfiguration||{file:"@/store/webapi",importName:"WebApiConfiguration"}},o=this.parserService.getApiGenerator().aliases.reduce((a,p)=>{if(le.isInterfaceDeclaration(p)||le.isTypeAliasDeclaration(p)){let u=p.name.text;return{...a,[u]:p}}return a},{}),s=this.parserService.getOperationDefinitions(this.options.filterEndpoints);return ue(t,e,o,s)}generateIndex(){let t=this.options.groupKey||"";return`/* eslint-disable */
168
168
  // [Warning] Generated automatically - do not edit manually
169
169
 
170
170
  export { default as ${t?`${t.charAt(0).toLowerCase()+t.slice(1)}Api`:"api"} } from "./enhanceEndpoints";
@@ -183,22 +183,24 @@ export function withoutUndefined(obj?: Record<string, any>) {
183
183
  );
184
184
  }
185
185
 
186
- `}c();function de(r){return r.length===0?`/* eslint-disable */
187
- // [Warning] Generated automatically - do not edit manually
188
-
186
+ `}function de(n){return n.toLowerCase().replace(/_([a-z])/g,(t,e)=>e.toUpperCase())}c();function fe(n){let t=n.reduce((r,o)=>(r[o.groupKey]||(r[o.groupKey]=[]),r[o.groupKey].push({operationName:o.operationName,queryKeyName:o.queryKeyName}),r),{});return`// [Warning] Generated automatically - do not edit manually
187
+
188
+ /**
189
+ * Cache keys enum for all API queries
190
+ */
189
191
  export enum ECacheTagTypes {
190
- }
191
- `:`/* eslint-disable */
192
- // [Warning] Generated automatically - do not edit manually
192
+ ${Object.entries(t).map(([r,o])=>{let s=` // ${r.charAt(0).toUpperCase()+r.slice(1)} related cache keys`,a=o.map(p=>` ${p.queryKeyName} = '${de(p.queryKeyName)}',`).join(`
193
+ `);return`${s}
194
+ ${a}`}).join(`
193
195
 
194
- export enum ECacheTagTypes {
195
- ${r.sort().map(e=>` ${e} = '${e}',`).join(`
196
196
  `)}
197
197
  }
198
- `}var q=class{_options;openApiService=new C;groupService=new N;fileWriterService=new R;openApiDoc=null;parserService=null;schemaInterfaces={};actualSchemaFile="";generatedContent={groups:[],commonTypes:"",componentSchema:"",doNotModify:"",utils:"",tagTypes:""};allTags=new Set;constructor(t){this._options=t}async generateAll(){return await this.prepare(),await this.generateApi(),this.generateCommonTypesContent(),this.generateSchemaContent(),this.generateUtilsContent(),this.generateDoNotModifyContent(),this.generateTagTypesContent(),await this.release()}async prepare(){this.actualSchemaFile=this._options.schemaFile,this._options.remoteFile&&(this.actualSchemaFile=await this.openApiService.downloadSchema(this._options.remoteFile,this._options.schemaFile)),this.openApiDoc=await this.openApiService.getDocument(this.actualSchemaFile,this._options.httpResolverOptions),this.parserService=new E(this.openApiDoc,this._options),this.parserService.initialize();let t=this.parserService.getApiGenerator();this.schemaInterfaces=t.aliases.reduce((e,n)=>{if(fe.isInterfaceDeclaration(n)||fe.isTypeAliasDeclaration(n)){let o=n.name.text;return{...e,[o]:n}}return e},{})}async generateApi(){if(!this.openApiDoc||!this.parserService)throw new Error("\u8ACB\u5148\u8ABF\u7528 prepare() \u65B9\u6CD5");let t=this.openApiService.getPaths(this.openApiDoc),e=this.groupService.groupPaths(t,this._options.outputFiles);for(let n of Object.values(e))try{let o=await this.generateApiGroupContent(this._options,n);o.operationNames.length>0&&(this.generatedContent.groups.push({groupKey:n.groupKey,outputPath:n.outputPath,content:o}),o.tags&&Array.isArray(o.tags)&&o.tags.forEach(s=>this.allTags.add(s)))}catch(o){throw new Error(`\u7FA4\u7D44 ${n.groupKey} \u751F\u6210\u5931\u6557: ${o}`)}}async generateCommonTypesContent(){this.generatedContent.commonTypes=se()}async generateSchemaContent(){this.generatedContent.componentSchema=ae(this.schemaInterfaces)}async generateDoNotModifyContent(){this.generatedContent.doNotModify=pe()}async generateUtilsContent(){this.generatedContent.utils=ye()}async generateTagTypesContent(){let t=Array.from(this.allTags);this.generatedContent.tagTypes=de(t)}async release(){let t=[],e=[],n=[];try{for(let p of this.generatedContent.groups)try{if(p.content?.files){let u=P.dirname(p.outputPath),i=await this.fileWriterService.writeGroupFiles(u,{types:p.content.files.types,queryService:p.content.files.queryService,enhanceEndpoints:p.content.files.enhanceEndpoints,index:p.content.files.index});t.push(...i),n.push(p.groupKey)}}catch(u){e.push(new Error(`\u5BEB\u5165\u7FA4\u7D44 ${p.groupKey} \u5931\u6557: ${u}`))}let o=this.generatedContent.groups[0]?P.dirname(P.dirname(this.generatedContent.groups[0].outputPath)):"./generated";if(this.generatedContent.commonTypes||this.generatedContent.doNotModify||this.generatedContent.utils){let p=await this.fileWriterService.writeSharedFiles(o,{commonTypes:this.generatedContent.commonTypes||void 0,doNotModify:this.generatedContent.doNotModify||void 0,utils:this.generatedContent.utils||void 0});t.push(...p)}if(this.generatedContent.tagTypes){let p=await this.fileWriterService.writeFile(P.join(o,"tagTypes.ts"),this.generatedContent.tagTypes);t.push(p)}if(this.generatedContent.componentSchema){let p=await this.fileWriterService.writeSchemaFile(o,this.generatedContent.componentSchema);t.push(...p)}let s=this.generateMainIndex(n),a=await this.fileWriterService.writeFile(P.join(o,"index.ts"),s);t.push(a)}catch(o){e.push(o)}return{success:e.length===0,writtenFiles:t,errors:e,generatedGroups:n}}async generateApiGroupContent(t,e){let{outputFiles:n,...o}=t,s={...o,schemaFile:this.actualSchemaFile,outputFile:e.outputPath,sharedTypesFile:`${n.outputDir}/common-types.ts`,filterEndpoints:this.groupService.createGroupFilter(e.groupKey,n),queryMatch:n.queryMatch,groupKey:e.groupKey};if(!this.openApiDoc||!this.parserService)throw new Error("OpenAPI \u6587\u6A94\u672A\u521D\u59CB\u5316\uFF0C\u8ACB\u5148\u8ABF\u7528 prepare()");return await new w(this.parserService,s).generate()}generateMainIndex(t){return`/* eslint-disable */
198
+
199
+ export default ECacheTagTypes;
200
+ `}var w=class{_options;openApiService=new A;groupService=new P;fileWriterService=new $;allEndpointCacheKeys=[];openApiDoc=null;parserService=null;schemaInterfaces={};actualSchemaFile="";generatedContent={groups:[],commonTypes:"",componentSchema:"",doNotModify:"",utils:"",tagTypes:""};allTags=new Set;constructor(t){this._options=t}async generateAll(){return await this.prepare(),await this.generateApi(),this.generateCommonTypesContent(),this.generateSchemaContent(),this.generateUtilsContent(),this.generateDoNotModifyContent(),this.generatECacheTagTypesContent(),await this.release()}async prepare(){this.actualSchemaFile=this._options.schemaFile,this._options.remoteFile&&(this.actualSchemaFile=await this.openApiService.downloadSchema(this._options.remoteFile,this._options.schemaFile)),this.openApiDoc=await this.openApiService.getDocument(this.actualSchemaFile,this._options.httpResolverOptions),this.parserService=new R(this.openApiDoc,this._options),this.parserService.initialize();let t=this.parserService.getApiGenerator();this.schemaInterfaces=t.aliases.reduce((e,r)=>{if(he.isInterfaceDeclaration(r)||he.isTypeAliasDeclaration(r)){let o=r.name.text;return{...e,[o]:r}}return e},{})}async generateApi(){if(!this.openApiDoc||!this.parserService)throw new Error("\u8ACB\u5148\u8ABF\u7528 prepare() \u65B9\u6CD5");let t=this.openApiService.getPaths(this.openApiDoc),e=this.groupService.groupPaths(t,this._options.outputFiles);for(let r of Object.values(e))try{let o=await this.generateApiGroupContent(this._options,r);o.operationNames.length>0&&(this.generatedContent.groups.push({groupKey:r.groupKey,outputPath:r.outputPath,content:o}),o.tags&&Array.isArray(o.tags)&&o.tags.forEach(s=>this.allTags.add(s)))}catch(o){throw new Error(`\u7FA4\u7D44 ${r.groupKey} \u751F\u6210\u5931\u6557: ${o}`)}}async generatECacheTagTypesContent(){this.generatedContent.tagTypes=fe(this.allEndpointCacheKeys)}async generateCommonTypesContent(){this.generatedContent.commonTypes=se()}async generateSchemaContent(){this.generatedContent.componentSchema=ae(this.schemaInterfaces)}async generateDoNotModifyContent(){this.generatedContent.doNotModify=pe()}async generateUtilsContent(){this.generatedContent.utils=ye()}async release(){let t=[],e=[],r=[];try{for(let p of this.generatedContent.groups)try{if(p.content?.files){let u=F.dirname(p.outputPath),i=await this.fileWriterService.writeGroupFiles(u,{types:p.content.files.types,queryService:p.content.files.queryService,enhanceEndpoints:p.content.files.enhanceEndpoints,index:p.content.files.index});t.push(...i),r.push(p.groupKey)}}catch(u){e.push(new Error(`\u5BEB\u5165\u7FA4\u7D44 ${p.groupKey} \u5931\u6557: ${u}`))}let o=this.generatedContent.groups[0]?F.dirname(F.dirname(this.generatedContent.groups[0].outputPath)):"./generated";if(this.generatedContent.tagTypes||this.generatedContent.commonTypes||this.generatedContent.doNotModify||this.generatedContent.utils){let p=await this.fileWriterService.writeSharedFiles(o,{tagTypes:this.generatedContent.tagTypes||void 0,commonTypes:this.generatedContent.commonTypes||void 0,doNotModify:this.generatedContent.doNotModify||void 0,utils:this.generatedContent.utils||void 0});t.push(...p)}if(this.generatedContent.componentSchema){let p=await this.fileWriterService.writeSchemaFile(o,this.generatedContent.componentSchema);t.push(...p)}let s=this.generateMainIndex(r),a=await this.fileWriterService.writeFile(F.join(o,"index.ts"),s);t.push(a)}catch(o){e.push(o)}return{success:e.length===0,writtenFiles:t,errors:e,generatedGroups:r}}async generateApiGroupContent(t,e){let{outputFiles:r,...o}=t,s={...o,schemaFile:this.actualSchemaFile,outputFile:e.outputPath,sharedTypesFile:`${r.outputDir}/common-types.ts`,filterEndpoints:this.groupService.createGroupFilter(e.groupKey,r),queryMatch:r.queryMatch,groupKey:e.groupKey};if(!this.openApiDoc||!this.parserService)throw new Error("OpenAPI \u6587\u6A94\u672A\u521D\u59CB\u5316\uFF0C\u8ACB\u5148\u8ABF\u7528 prepare()");let p=await new q(this.parserService,s).generate();if(p.files&&"allEndpointCacheKeys"in p.files){let u=p.files.allEndpointCacheKeys;this.allEndpointCacheKeys.push(...u)}return p}generateMainIndex(t){return`/* eslint-disable */
199
201
  // [Warning] Generated automatically - do not edit manually
200
202
 
201
- ${t.map(n=>`export * from "./${n}";`).join(`
203
+ ${t.map(r=>`export * from "./${r}";`).join(`
202
204
  `)}
203
- `}};async function he(r){let e=await new q(r).generateAll();if(!e.success&&e.errors.length>0)throw e.errors[0]}var ve=nt(g);async function st(r){let t=it(process.cwd(),r);process.chdir(ot(t));let e=ve(t),n=e.default??e;"outputFiles"in n||(console.error('Configuration must include "outputFiles" property. Single file output is no longer supported.'),process.exit(1)),n.outputFiles&&n.outputFiles.outputDir&&U(n.outputFiles.outputDir);try{console.log("Generating multiple outputs..."),await he(n),console.log("Done")}catch(o){console.error("Generation failed:",o),process.exit(1)}}async function at(){let r=ve("../../package.json"),t=W();j.version(r.version).usage("<path/to/config.js>").parse(process.argv);let e=j.args[0];if(j.args.length===0){j.help();return}_(e),B(e,t),await st(e)}at().catch(r=>{console.error("CLI execution failed:",r),process.exit(1)});export{st as runGeneration};
205
+ `}};async function ve(n){let e=await new w(n).generateAll();if(!e.success&&e.errors.length>0)throw e.errors[0]}var be=ot(g);async function at(n){let t=st(process.cwd(),n);process.chdir(it(t));let e=be(t),r=e.default??e;"outputFiles"in r||(console.error('Configuration must include "outputFiles" property. Single file output is no longer supported.'),process.exit(1)),r.outputFiles&&r.outputFiles.outputDir&&U(r.outputFiles.outputDir);try{console.log("Generating multiple outputs..."),await ve(r),console.log("Done")}catch(o){console.error("Generation failed:",o),process.exit(1)}}async function pt(){let n=be("../../package.json"),t=W();j.version(n.version).usage("<path/to/config.js>").parse(process.argv);let e=j.args[0];if(j.args.length===0){j.help();return}_(e),B(e,t),await at(e)}pt().catch(n=>{console.error("CLI execution failed:",n),process.exit(1)});export{at as runGeneration};
204
206
  //# sourceMappingURL=cli.mjs.map