@acrool/rtk-query-codegen-openapi 1.4.0-alpha.0 → 1.4.0-alpha.2

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 U=Object.defineProperty;var Ne=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var Ee=Object.prototype.hasOwnProperty;var z=(r,e)=>()=>(r&&(e=r(r=0)),e);var De=(r,e)=>{for(var t in e)U(r,t,{get:e[t],enumerable:!0})},Fe=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of $e(e))!Ee.call(r,o)&&o!==t&&U(r,o,{get:()=>e[o],enumerable:!(n=Ne(e,o))||n.enumerable});return r};var Ie=r=>Fe(U({},"__esModule",{value:!0}),r);import{fileURLToPath as je}from"node:url";var qe,g,u=z(()=>{"use strict";qe=()=>je(import.meta.url),g=qe()});var le={};De(le,{argumentMatches:()=>Je,defaultIsDataResponse:()=>Ze,getOperationName:()=>q,getOverrides:()=>_,getTags:()=>Ye,operationMatches:()=>fe});import{getOperationName as He}from"oazapfts/generate";function Ze(r,e){if(e&&r==="default")return!0;let t=Number(r);return!Number.isNaN(t)&&t>=200&&t<300}function q({verb:r,path:e}){return He(r,e,void 0)}function Ye({verb:r,pathItem:e}){return r?e[r]?.tags||[]:[]}function me(r){let e=Array.isArray(r)?r:[r];return function(n){return r?e.some(o=>typeof o=="string"?o===n:o?.test(n)):!0}}function fe(r){let e=typeof r=="function"?r:me(r);return function(n){if(!r)return!0;let o=q(n);return e(o,n)}}function Je(r){let e=typeof r=="function"?r:me(r);return function(n){if(!r||n.in==="path")return!0;let o=n.name;return e(o,n)}}function _(r,e){return e?.find(t=>fe(t.pattern)(r))}var B=z(()=>{"use strict";u()});u();import V from"commander";import{createRequire as mt}from"node:module";u();import Ge from"commander";import{createRequire as Ke}from"node:module";import{resolve as H}from"node:path";import{existsSync as W,rmSync as Me,readdirSync as ke,statSync as Ve,mkdirSync as Ue}from"node:fs";import Z from"node:path";var R=Ke(g);function We(r){let e=new Map;if(!W(r))return e;function t(n){try{let o=ke(n);for(let i of o){let s=Z.join(n,i);if(Ve(s).isDirectory())t(s);else if(i==="enhanceEndpoints.ts"){let c=R("node:fs").readFileSync(s);e.set(s,c)}}}catch{}}return t(r),e}function Qe(r){for(let[e,t]of r)try{let n=Z.dirname(e);W(n)||Ue(n,{recursive:!0}),R("node:fs").writeFileSync(e,t)}catch(n){console.warn(`Failed to restore ${e}:`,n)}}function Y(r){let e=["/","/usr","/etc","/var","/home","/Users",".",".."],t=H(r);if(e.some(n=>t===H(n))&&(console.error(`Dangerous path detected: ${t}. Refusing to delete.`),process.exit(1)),W(r)){console.log(`Cleaning output directory: ${r}`);let n=We(r);Me(r,{recursive:!0,force:!0}),n.size>0&&(Qe(n),console.log(`Protected ${n.size} enhanceEndpoints.ts file(s) from deletion`)),console.log(`Directory cleaned: ${r}`)}}function J(){try{if(R.resolve("esbuild")&&R.resolve("esbuild-runner"))return R("esbuild-runner/register"),!0}catch{}try{if(R.resolve("typescript")&&R.resolve("ts-node"))return R("ts-node").register({transpileOnly:!0,compilerOptions:{target:"es6",module:"commonjs"}}),!0}catch{}return!1}function X(r){(!r||!/\.([mc]?(jsx?|tsx?)|jsonc?)?$/.test(r))&&(console.error("Please provide a valid configuration file."),Ge.help())}function ee(r,e){/\.[mc]?tsx?$/.test(r)&&!e&&(console.error("Encountered a TypeScript config file, but neither esbuild-runner nor ts-node are installed."),process.exit(1))}import{dirname as ft,resolve as lt}from"node:path";u();u();import E from"node:path";import Pe from"typescript";u();u();function D(r){return r.replace(r[0],r[0].toUpperCase())}u();import Q from"node:fs";import _e from"node:path";u();function te(r){try{new URL(r)}catch{return!1}return!0}async function re(r,e){if(!te(r))throw new Error(`remoteFile must be a valid URL: ${r}`);try{let t=_e.dirname(e);Q.existsSync(t)||await Q.promises.mkdir(t,{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 Q.promises.writeFile(e,o,"utf-8"),console.log(`Schema downloaded from ${r} to ${e}`),e}catch(t){throw console.error(`Error downloading schema from ${r}:`,t),t}}u();u();var ne=["get","put","post","delete","options","head","patch","trace"];function oe(r){return Object.entries(r.paths).flatMap(([e,t])=>t?Object.entries(t).filter(n=>ne.includes(n[0])).map(([n,o])=>({path:e,verb:n,pathItem:t,operation:o})):[])}u();import Be from"@apidevtools/swagger-parser";import Le from"swagger2openapi";async function ie(r,e){let t=await Be.bundle(r,{resolve:{http:e}});return"openapi"in t&&t.openapi.startsWith("3")?t:(await Le.convertObj(t,{})).openapi}u();function se(r,e,t,n){return n?n(r,e):t?.type?t.type==="query":r==="get"}var F=class{docCache={};async getDocument(e,t){if(this.docCache[e])return this.docCache[e];let n=await ie(e,t);return this.docCache[e]=n,n}async downloadSchema(e,t){return re(e,t)}getPaths(e){return Object.keys(e.paths||{})}clearCache(){this.docCache={}}};u();import ae from"lodash.camelcase";var I=class{groupPaths(e,t){let{groupKeyMatch:n,outputDir:o}=t,i=e.reduce((a,c)=>{let m=n(c),f=m?ae(m):"_common";return a[f]||(a[f]=[]),a[f].push(c),a},{}),s={};for(let[a,c]of Object.entries(i))s[a]={groupKey:a,paths:c,outputPath:`${o}/${a}/query.service.ts`};return s}createGroupFilter(e,t){return(n,o)=>{let i=o.path,s=ae(t.groupKeyMatch(i)||"");return s!==e&&(s||"_common")!==e?!1:t.filterEndpoint?t.filterEndpoint(n,i,e):!0}}};u();import ue from"node:fs";import T from"node:path";u();import ze from"node:path";import pe from"node:fs";async function ce(r){let e=ze.dirname(r);pe.existsSync(e)||await pe.promises.mkdir(e,{recursive:!0})}var j=class{async writeFile(e,t){try{let n=T.resolve(process.cwd(),e);return T.basename(n)==="enhanceEndpoints.ts"&&ue.existsSync(n)?{path:n,success:!0}:(await ce(n),ue.writeFileSync(n,t),{path:n,success:!0})}catch(n){return{path:e,success:!1,error:n}}}async writeFiles(e){let t=[];for(let[n,o]of Object.entries(e)){let i=await this.writeFile(n,o);t.push(i)}return t}async writeGroupFiles(e,t){let n={};return t.types&&(n[T.join(e,"types.ts")]=t.types),t.queryService&&(n[T.join(e,"query.generated.ts")]=t.queryService),t.enhanceEndpoints&&(n[T.join(e,"enhanceEndpoints.ts")]=t.enhanceEndpoints),t.index&&(n[T.join(e,"index.ts")]=t.index),this.writeFiles(n)}async writeSharedFiles(e,t){let n={};return t.commonTypes&&(n[T.join(e,"common-types.ts")]=t.commonTypes),t.doNotModify&&(n[T.join(e,"DO_NOT_MODIFY.md")]=t.doNotModify),t.utils&&(n[T.join(e,"utils.ts")]=t.utils),this.writeFiles(n)}async writeSchemaFile(e,t){let n={};return n[T.join(e,"schema.ts")]=t,this.writeFiles(n)}};u();import Xe from"oazapfts/generate";var G=class{constructor(e,t){this.v3Doc=e;this.apiGen=new Xe(e,{unionUndefined:t.unionUndefined,mergeReadWriteOnly:t.mergeReadWriteOnly})}apiGen;initialize(){this.apiGen.spec.components?.schemas&&(Object.keys(this.apiGen.spec.components.schemas).forEach(e=>{let t=this.apiGen.spec.components.schemas[e];t&&typeof t=="object"&&"title"in t&&delete t.title}),this.apiGen.preprocessComponents(this.apiGen.spec.components.schemas),Object.keys(this.apiGen.spec.components.schemas).forEach(e=>{try{this.apiGen.getRefAlias({$ref:`#/components/schemas/${e}`})}catch{}}))}getOperationDefinitions(e){let{operationMatches:t}=(B(),Ie(le));return oe(this.v3Doc).filter(t(e))}getApiGenerator(){return this.apiGen}getDocument(){return this.v3Doc}getSchemaTypeNames(){return new Set}};u();function ge(){return`/* eslint-disable */
2
+ var z=Object.defineProperty;var De=Object.getOwnPropertyDescriptor;var Fe=Object.getOwnPropertyNames;var je=Object.prototype.hasOwnProperty;var X=(n,e)=>()=>(n&&(e=n(n=0)),e);var Ie=(n,e)=>{for(var t in e)z(n,t,{get:e[t],enumerable:!0})},qe=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Fe(e))!je.call(n,o)&&o!==t&&z(n,o,{get:()=>e[o],enumerable:!(r=De(e,o))||r.enumerable});return n};var Ge=n=>qe(z({},"__esModule",{value:!0}),n);import{fileURLToPath as Me}from"node:url";var ke,y,c=X(()=>{"use strict";ke=()=>Me(import.meta.url),y=ke()});var be={};Ie(be,{argumentMatches:()=>tt,defaultIsDataResponse:()=>Xe,getOperationName:()=>K,getOverrides:()=>H,getTags:()=>et,operationMatches:()=>he});import{getOperationName as Je}from"oazapfts/generate";function Xe(n,e){if(e&&n==="default")return!0;let t=Number(n);return!Number.isNaN(t)&&t>=200&&t<300}function K({verb:n,path:e}){return Je(n,e,void 0)}function et({verb:n,pathItem:e}){return n?e[n]?.tags||[]:[]}function de(n){let e=Array.isArray(n)?n:[n];return function(r){return n?e.some(o=>typeof o=="string"?o===r:o?.test(r)):!0}}function he(n){let e=typeof n=="function"?n:de(n);return function(r){if(!n)return!0;let o=K(r);return e(o,r)}}function tt(n){let e=typeof n=="function"?n:de(n);return function(r){if(!n||r.in==="path")return!0;let o=r.name;return e(o,r)}}function H(n,e){return e?.find(t=>he(t.pattern)(n))}var Z=X(()=>{"use strict";c()});c();import L from"commander";import{createRequire as bt}from"node:module";c();import Ke from"commander";import{createRequire as Ue}from"node:module";import{resolve as ee}from"node:path";import{existsSync as _,rmSync as Ve,readdirSync as Qe,statSync as We,mkdirSync as Le}from"node:fs";import te from"node:path";var E=Ue(y);function ze(n){let e=new Map;if(!_(n))return e;function t(r){try{let o=Qe(r);for(let i of o){let s=te.join(r,i);if(We(s).isDirectory())t(s);else if(i==="enhanceEndpoints.ts"){let p=E("node:fs").readFileSync(s);e.set(s,p)}}}catch{}}return t(n),e}function _e(n){for(let[e,t]of n)try{let r=te.dirname(e);_(r)||Le(r,{recursive:!0}),E("node:fs").writeFileSync(e,t)}catch(r){console.warn(`Failed to restore ${e}:`,r)}}function ne(n){let e=["/","/usr","/etc","/var","/home","/Users",".",".."],t=ee(n);if(e.some(r=>t===ee(r))&&(console.error(`Dangerous path detected: ${t}. Refusing to delete.`),process.exit(1)),_(n)){console.log(`Cleaning output directory: ${n}`);let r=ze(n);Ve(n,{recursive:!0,force:!0}),r.size>0&&(_e(r),console.log(`Protected ${r.size} enhanceEndpoints.ts file(s) from deletion`)),console.log(`Directory cleaned: ${n}`)}}function re(){try{if(E.resolve("esbuild")&&E.resolve("esbuild-runner"))return E("esbuild-runner/register"),!0}catch{}try{if(E.resolve("typescript")&&E.resolve("ts-node"))return E("ts-node").register({transpileOnly:!0,compilerOptions:{target:"es6",module:"commonjs"}}),!0}catch{}return!1}function oe(n){(!n||!/\.([mc]?(jsx?|tsx?)|jsonc?)?$/.test(n))&&(console.error("Please provide a valid configuration file."),Ke.help())}function ie(n,e){/\.[mc]?tsx?$/.test(n)&&!e&&(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 Tt}from"node:path";c();c();import j from"node:path";import we from"typescript";c();c();function q(n){return n.replace(n[0],n[0].toUpperCase())}c();import B from"node:fs";import Be from"node:path";c();function se(n){try{new URL(n)}catch{return!1}return!0}async function ae(n,e){if(!se(n))throw new Error(`remoteFile must be a valid URL: ${n}`);try{let t=Be.dirname(e);B.existsSync(t)||await B.promises.mkdir(t,{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 B.promises.writeFile(e,o,"utf-8"),console.log(`Schema downloaded from ${n} to ${e}`),e}catch(t){throw console.error(`Error downloading schema from ${n}:`,t),t}}c();c();var pe=["get","put","post","delete","options","head","patch","trace"];function ce(n){return Object.entries(n.paths).flatMap(([e,t])=>t?Object.entries(t).filter(r=>pe.includes(r[0])).map(([r,o])=>({path:e,verb:r,pathItem:t,operation:o})):[])}c();import He from"@apidevtools/swagger-parser";import Ze from"swagger2openapi";async function ue(n,e){let t=await He.bundle(n,{resolve:{http:e}});return"openapi"in t&&t.openapi.startsWith("3")?t:(await Ze.convertObj(t,{})).openapi}c();function le(n,e,t,r){return r?r(n,e):t?.type?t.type==="query":n==="get"}var G=class{docCache={};async getDocument(e,t){if(this.docCache[e])return this.docCache[e];let r=await ue(e,t);return this.docCache[e]=r,r}async downloadSchema(e,t){return ae(e,t)}getPaths(e){return Object.keys(e.paths||{})}clearCache(){this.docCache={}}};c();import me from"lodash.camelcase";var M=class{groupPaths(e,t){let{groupKeyMatch:r,outputDir:o}=t,i=e.reduce((a,p)=>{let l=r(p),m=l?me(l):"_common";return a[m]||(a[m]=[]),a[m].push(p),a},{}),s={};for(let[a,p]of Object.entries(i))s[a]={groupKey:a,paths:p,outputPath:`${o}/${a}/query.service.ts`};return s}createGroupFilter(e,t){return(r,o)=>{let i=o.path,s=me(t.groupKeyMatch(i)||"");return s!==e&&(s||"_common")!==e?!1:t.filterEndpoint?t.filterEndpoint(r,i,e):!0}}};c();import ye from"node:fs";import $ from"node:path";c();import Ye from"node:path";import fe from"node:fs";async function ge(n){let e=Ye.dirname(n);fe.existsSync(e)||await fe.promises.mkdir(e,{recursive:!0})}var k=class{async writeFile(e,t){try{let r=$.resolve(process.cwd(),e);return $.basename(r)==="enhanceEndpoints.ts"&&ye.existsSync(r)?{path:r,success:!0}:(await ge(r),ye.writeFileSync(r,t),{path:r,success:!0})}catch(r){return{path:e,success:!1,error:r}}}async writeFiles(e){let t=[];for(let[r,o]of Object.entries(e)){let i=await this.writeFile(r,o);t.push(i)}return t}async writeGroupFiles(e,t){let r={};return t.types&&(r[$.join(e,"types.ts")]=t.types),t.queryService&&(r[$.join(e,"query.generated.ts")]=t.queryService),t.enhanceEndpoints&&(r[$.join(e,"enhanceEndpoints.ts")]=t.enhanceEndpoints),t.index&&(r[$.join(e,"index.ts")]=t.index),this.writeFiles(r)}async writeSharedFiles(e,t){let r={};return t.commonTypes&&(r[$.join(e,"common-types.ts")]=t.commonTypes),t.doNotModify&&(r[$.join(e,"DO_NOT_MODIFY.md")]=t.doNotModify),t.utils&&(r[$.join(e,"utils.ts")]=t.utils),this.writeFiles(r)}async writeSchemaFile(e,t){let r={};return r[$.join(e,"schema.ts")]=t,this.writeFiles(r)}};c();import nt from"oazapfts/generate";var U=class{constructor(e,t){this.v3Doc=e;this.apiGen=new nt(e,{unionUndefined:t.unionUndefined,mergeReadWriteOnly:t.mergeReadWriteOnly})}apiGen;initialize(){this.apiGen.spec.components?.schemas&&(Object.keys(this.apiGen.spec.components.schemas).forEach(e=>{let t=this.apiGen.spec.components.schemas[e];t&&typeof t=="object"&&"title"in t&&delete t.title}),this.apiGen.preprocessComponents(this.apiGen.spec.components.schemas),Object.keys(this.apiGen.spec.components.schemas).forEach(e=>{try{this.apiGen.getRefAlias({$ref:`#/components/schemas/${e}`})}catch{}}))}getOperationDefinitions(e){let{operationMatches:t}=(Z(),Ge(be));return ce(this.v3Doc).filter(t(e))}getApiGenerator(){return this.apiGen}getDocument(){return this.v3Doc}getSchemaTypeNames(){return new Set}};c();function Oe(){return`/* eslint-disable */
3
3
  // [Warning] Generated automatically - do not edit manually
4
4
 
5
5
  export interface RequestOptions {
@@ -14,18 +14,70 @@ export interface IRequestConfig {
14
14
  timeout?: number;
15
15
  }
16
16
 
17
- export type IRestFulEndpointsQueryReturn<TVariables> = TVariables extends void ?
18
- void | {fetchOptions?: IRequestConfig;}:
17
+ export type IRestFulEndpointsQueryReturn<TVariables> = TVariables extends void ?
18
+ void | {fetchOptions?: IRequestConfig;}:
19
19
  {
20
20
  variables: TVariables;
21
21
  fetchOptions?: IRequestConfig;
22
22
  };
23
- `}u();import x from"typescript";function et(r){return r.charAt(0).toUpperCase()+r.slice(1)}function tt(r,e,t){return x.transform(r,[n=>o=>x.visitNode(o,function i(s){return x.isIdentifier(s)&&s.text===e?x.factory.createIdentifier(t):x.visitEachChild(s,i,n)})]).transformed[0]}function de(r,e){let t=x.createPrinter({newLine:x.NewLineKind.LineFeed}),n=x.createSourceFile("component-schema.ts","",x.ScriptTarget.Latest,!1,x.ScriptKind.TS),o=[],i={};return Object.entries(r).forEach(([s,a])=>{let c=et(s);if(i[s]=c,e&&!e.has(s))return;let m=tt(a,s,c),f=t.printNode(x.EmitHint.Unspecified,m,n);o.push(f)}),`/* eslint-disable */
23
+
24
+ export type UseSimpleQuery<TRes, TArg = void> = (
25
+ arg: TArg,
26
+ options?: {
27
+ skip?: boolean;
28
+ pollingInterval?: number;
29
+ refetchOnMountOrArgChange?: boolean | number;
30
+ refetchOnFocus?: boolean;
31
+ refetchOnReconnect?: boolean;
32
+ }
33
+ ) => {
34
+ data: TRes | undefined;
35
+ currentData: TRes | undefined;
36
+ isLoading: boolean;
37
+ isFetching: boolean;
38
+ isSuccess: boolean;
39
+ isError: boolean;
40
+ isUninitialized: boolean;
41
+ error: unknown;
42
+ refetch: () => void;
43
+ };
44
+
45
+ export type UseSimpleMutation<TRes, TArg = void> = () => [
46
+ (arg: TArg) => {unwrap: () => Promise<TRes>} & PromiseLike<{data: TRes} | {error: unknown}>,
47
+ {
48
+ data: TRes | undefined;
49
+ isLoading: boolean;
50
+ isSuccess: boolean;
51
+ isError: boolean;
52
+ isUninitialized: boolean;
53
+ error: unknown;
54
+ reset: () => void;
55
+ }
56
+ ];
57
+
58
+ export type UseSimpleLazyQuery<TRes, TArg = void> = () => [
59
+ (arg: TArg, preferCacheValue?: boolean) => void,
60
+ {
61
+ data: TRes | undefined;
62
+ currentData: TRes | undefined;
63
+ isLoading: boolean;
64
+ isFetching: boolean;
65
+ isSuccess: boolean;
66
+ isError: boolean;
67
+ isUninitialized: boolean;
68
+ error: unknown;
69
+ },
70
+ {lastArg: TArg | undefined}
71
+ ];
72
+ `}c();import v from"typescript";function rt(n){return n.charAt(0).toUpperCase()+n.slice(1)}function ot(n,e,t){return v.transform(n,[r=>o=>v.visitNode(o,function i(s){return v.isIdentifier(s)&&s.text===e?v.factory.createIdentifier(t):v.visitEachChild(s,i,r)})]).transformed[0]}function it(n){if(!v.isUnionTypeNode(n.type))return null;let e=[];for(let t of n.type.types)if(v.isLiteralTypeNode(t)&&v.isStringLiteral(t.literal))e.push(t.literal.text);else return null;return e.length>0?e:null}function st(n,e){let t=e.map(r=>` ${r.charAt(0).toUpperCase()+r.slice(1)} = "${r}"`);return`export enum ${n} {
73
+ ${t.join(`,
74
+ `)}
75
+ }`}function Te(n,e){let t=v.createPrinter({newLine:v.NewLineKind.LineFeed}),r=v.createSourceFile("component-schema.ts","",v.ScriptTarget.Latest,!1,v.ScriptKind.TS),o=[],i={};return Object.entries(n).forEach(([s,a])=>{let p=rt(s);if(i[s]=p,e&&!e.has(s))return;if(v.isTypeAliasDeclaration(a)){let f=it(a);if(f){o.push(st(p,f));return}}let l=ot(a,s,p),m=t.printNode(v.EmitHint.Unspecified,l,r);o.push(m)}),`/* eslint-disable */
24
76
  // [Warning] Generated automatically - do not edit manually
25
77
 
26
78
  ${o.join(`
27
79
  `)}
28
- `}u();function ye(){return`# \u8ACB\u52FF\u4FEE\u6539\u6B64\u8CC7\u6599\u593E
80
+ `}c();function Se(){return`# \u8ACB\u52FF\u4FEE\u6539\u6B64\u8CC7\u6599\u593E
29
81
 
30
82
  \u26A0\uFE0F **\u91CD\u8981\u63D0\u9192\uFF1A\u8ACB\u52FF\u4FEE\u6539\u6B64\u8CC7\u6599\u593E\u4E2D\u7684\u4EFB\u4F55\u6A94\u6848**
31
83
 
@@ -44,48 +96,54 @@ ${o.join(`
44
96
  \u9019\u4E9B\u6A94\u6848\u662F\u7531 @acrool/rtk-query-codegen-openapi \u7522\u751F\u5668\u6240\u5EFA\u7ACB\u3002
45
97
 
46
98
  \u5982\u6709\u7591\u554F\uFF0C\u8ACB\u53C3\u8003\u5C08\u6848\u6587\u4EF6\u6216\u806F\u7E6B\u958B\u767C\u5718\u968A\u3002
47
- `}u();import Se from"typescript";u();B();import{supportDeepObjects as rt}from"oazapfts/generate";var $=class{constructor(e){this.options=e}extractEndpointInfos(e){return e.map(t=>this.extractSingleEndpointInfo(t))}extractSingleEndpointInfo(e){let{verb:t,path:n,operation:o}=e,{operationNameSuffix:i="",argSuffix:s="Req",responseSuffix:a="Res",queryMatch:c,endpointOverrides:m}=this.options,f=q({verb:t,path:n}),p=i?D(f+i):f,l=D(f+i+s),h=D(f+i+a),y=se(t,n,_(e,m),c),v=`${f.replace(/([A-Z])/g,"_$1").toUpperCase()}`,S=o.summary||`${t.toUpperCase()} ${n}`,{queryParams:b,pathParams:C,isVoidArg:w,hasRequestBody:N}=this.extractParameters(e),Re=this.extractContentType(o),we=Array.isArray(o.tags)?o.tags:[];return{operationName:p,argTypeName:l,responseTypeName:h,isQuery:y,verb:t.toUpperCase(),path:n,queryKeyName:v,queryParams:b,pathParams:C,isVoidArg:w,summary:S,contentType:Re,hasRequestBody:N,tags:we}}extractParameters(e){let{operation:t,pathItem:n}=e,o=this.resolveArray(t.parameters),i=this.resolveArray(n.parameters).filter(p=>!o.some(l=>l.name===p.name&&l.in===p.in)),s=rt([...i,...o]).filter(p=>p.in!=="header"),a=s.filter(p=>p.in==="query"),c=s.filter(p=>p.in==="path"),m=!!t.requestBody,f=a.length===0&&c.length===0&&!t.requestBody;return{queryParams:a,pathParams:c,isVoidArg:f,hasRequestBody:m}}resolveArray(e){return e?Array.isArray(e)?e:[e]:[]}extractContentType(e){if(!e.requestBody)return"application/json";let t=e.requestBody.content;if(!t||typeof t!="object")return"application/json";let n=Object.keys(t);return n.length===0?"application/json":n[0]}};u();import O from"typescript";var L=r=>r.charAt(0).toUpperCase()+r.slice(1);function nt(r,e,t){return O.transform(r,[n=>o=>O.visitNode(o,function i(s){return O.isIdentifier(s)&&s.text===e?O.factory.createIdentifier(t):O.visitEachChild(s,i,n)})]).transformed[0]}function ot(r,e,t,n){let o=new Set;for(let i of e)t.has(i)||o.add(L(i));return O.transform(r,[i=>s=>O.visitNode(s,function a(c){if(O.isTypeReferenceNode(c)&&O.isIdentifier(c.typeName)){let m=c.typeName.text;if(o.has(m)&&m!==n){let f=O.factory.createQualifiedName(O.factory.createIdentifier("Schema"),O.factory.createIdentifier(m));return O.factory.createTypeReferenceNode(f,c.typeArguments)}}return O.visitEachChild(c,a,i)})]).transformed[0]}function K(r,e,t,n,o){let i=o?.localSchemaNames??new Set,s=o?.localSchemaInterfaces??{},a={};t&&Object.keys(t).forEach(l=>{if(a[l]=l,l.endsWith("Vo")){let h=l.slice(0,-2)+"VO";a[h]=l}if(l.endsWith("Dto")){let h=l.slice(0,-3)+"DTO";a[h]=l}});let c=t&&Object.keys(t).some(l=>!i.has(l)),m=`/* eslint-disable */
99
+ `}c();import Pe from"typescript";c();Z();import{supportDeepObjects as at}from"oazapfts/generate";var F=class{constructor(e){this.options=e}extractEndpointInfos(e){return e.map(t=>this.extractSingleEndpointInfo(t))}extractSingleEndpointInfo(e){let{verb:t,path:r,operation:o}=e,{operationNameSuffix:i="",argSuffix:s="Req",responseSuffix:a="Res",queryMatch:p,endpointOverrides:l}=this.options,m=K({verb:t,path:r}),f=i?q(m+i):m,g=q(m+i+s),O=q(m+i+a),b=le(t,r,H(e,l),p),T=`${m.replace(/([A-Z])/g,"_$1").toUpperCase()}`,C=o.summary||`${t.toUpperCase()} ${r}`,{queryParams:u,pathParams:A,isVoidArg:P,hasRequestBody:S}=this.extractParameters(e),x=this.extractContentType(o),N=Array.isArray(o.tags)?o.tags:[];return{operationName:f,argTypeName:g,responseTypeName:O,isQuery:b,verb:t.toUpperCase(),path:r,queryKeyName:T,queryParams:u,pathParams:A,isVoidArg:P,summary:C,contentType:x,hasRequestBody:S,tags:N}}extractParameters(e){let{operation:t,pathItem:r}=e,o=this.resolveArray(t.parameters),i=this.resolveArray(r.parameters).filter(f=>!o.some(g=>g.name===f.name&&g.in===f.in)),s=at([...i,...o]).filter(f=>f.in!=="header"),a=s.filter(f=>f.in==="query"),p=s.filter(f=>f.in==="path"),l=!!t.requestBody,m=a.length===0&&p.length===0&&!t.requestBody;return{queryParams:a,pathParams:p,isVoidArg:m,hasRequestBody:l}}resolveArray(e){return e?Array.isArray(e)?e:[e]:[]}extractContentType(e){if(!e.requestBody)return"application/json";let t=e.requestBody.content;if(!t||typeof t!="object")return"application/json";let r=Object.keys(t);return r.length===0?"application/json":r[0]}};c();import h from"typescript";var Y=n=>n.charAt(0).toUpperCase()+n.slice(1);function pt(n,e,t){return h.transform(n,[r=>o=>h.visitNode(o,function i(s){return h.isIdentifier(s)&&s.text===e?h.factory.createIdentifier(t):h.visitEachChild(s,i,r)})]).transformed[0]}function ct(n,e,t,r){let o=new Set;for(let i of e)t.has(i)||o.add(Y(i));return h.transform(n,[i=>s=>h.visitNode(s,function a(p){if(h.isTypeReferenceNode(p)&&h.isIdentifier(p.typeName)){let l=p.typeName.text;if(o.has(l)&&l!==r){let m=h.factory.createQualifiedName(h.factory.createIdentifier("Schema"),h.factory.createIdentifier(l));return h.factory.createTypeReferenceNode(m,p.typeArguments)}}return h.visitEachChild(p,a,i)})]).transformed[0]}function ut(n){if(!h.isUnionTypeNode(n.type))return null;let e=[];for(let t of n.type.types)if(h.isLiteralTypeNode(t)&&h.isStringLiteral(t.literal))e.push(t.literal.text);else return null;return e.length>0?e:null}function lt(n,e){let t=e.map(r=>` ${r.charAt(0).toUpperCase()+r.slice(1)} = "${r}"`);return`export enum ${n} {
100
+ ${t.join(`,
101
+ `)}
102
+ }`}function V(n,e,t,r,o){let i=o?.localSchemaNames??new Set,s=o?.localSchemaInterfaces??{},a={};t&&Object.keys(t).forEach(g=>{if(a[g]=g,g.endsWith("Vo")){let O=g.slice(0,-2)+"VO";a[O]=g}if(g.endsWith("Dto")){let O=g.slice(0,-3)+"DTO";a[O]=g}});let p=t&&Object.keys(t).some(g=>!i.has(g)),l=`/* eslint-disable */
48
103
  // [Warning] Generated automatically - do not edit manually
49
104
 
50
- `;c&&(m+=`import * as Schema from "../schema";
51
- `),m+=`
52
- `;let f=[];if(Object.keys(s).length>0){let l=O.createPrinter({newLine:O.NewLineKind.LineFeed}),h=O.createSourceFile("types.ts","",O.ScriptTarget.Latest,!1,O.ScriptKind.TS),y=[],v=new Set(t?Object.keys(t):[]);for(let[S,b]of Object.entries(s)){let C=L(S),w=nt(b,S,C);w=ot(w,v,i,C);let N=l.printNode(O.EmitHint.Unspecified,w,h);y.push(N)}y.length>0&&f.push(y.join(`
53
- `))}let p=[];return r.forEach(l=>{let h=l.argTypeName,y=l.responseTypeName;if(h){let v=it(l,n,a,i);v.trim()===""?p.push(`export type ${h} = void;`,""):p.push(`export type ${h} = {`,v,"};","")}if(y){let v=st(l,n,a,i);v.content.trim()===""?p.push(`export type ${y} = void;`,""):v.isDirectType?p.push(`export type ${y} = ${v.content};`,""):p.push(`export type ${y} = {`,v.content,"};","")}}),p.length>0&&f.push(p.join(`
54
- `)),f.length===0&&f.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",""),m+f.join(`
105
+ `;p&&(l+=`import * as Schema from "../schema";
106
+ `),l+=`
107
+ `;let m=[];if(Object.keys(s).length>0){let g=h.createPrinter({newLine:h.NewLineKind.LineFeed}),O=h.createSourceFile("types.ts","",h.ScriptTarget.Latest,!1,h.ScriptKind.TS),b=[],T=new Set(t?Object.keys(t):[]);for(let[C,u]of Object.entries(s)){let A=Y(C);if(h.isTypeAliasDeclaration(u)){let x=ut(u);if(x){b.push(lt(A,x));continue}}let P=pt(u,C,A);P=ct(P,T,i,A);let S=g.printNode(h.EmitHint.Unspecified,P,O);b.push(S)}b.length>0&&m.push(b.join(`
108
+ `))}let f=[];return n.forEach(g=>{let O=g.argTypeName,b=g.responseTypeName;if(O){let T=mt(g,r,a,i);T.trim()===""?f.push(`export type ${O} = void;`,""):f.push(`export type ${O} = {`,T,"};","")}if(b){let T=ft(g,r,a,i);T.content.trim()===""?f.push(`export type ${b} = void;`,""):T.isDirectType?f.push(`export type ${b} = ${T.content};`,""):f.push(`export type ${b} = {`,T.content,"};","")}}),f.length>0&&m.push(f.join(`
109
+ `)),m.length===0&&m.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",""),l+m.join(`
55
110
 
56
- `)}function it(r,e,t={},n=new Set){let o=[];r.queryParams&&r.queryParams.length>0&&r.queryParams.forEach(s=>{let a=s.required?"":"?",c=he(s,t,n);o.push(` ${s.name}${a}: ${c};`)}),r.pathParams&&r.pathParams.length>0&&r.pathParams.forEach(s=>{let a=s.required?"":"?",c=he(s,t,n);o.push(` ${s.name}${a}: ${c};`)});let i=e?.find(s=>s.operation?.operationId===r.operationName||s.operation?.operationId===r.operationName.toLowerCase()||s.verb===r.verb.toLowerCase()&&s.path===r.path);if(i?.operation?.requestBody){let a=i.operation.requestBody.content,c=a["application/json"]||a["*/*"],m=a["multipart/form-data"]||a["application/x-www-form-urlencoded"];if(c?.schema){let f=P(c.schema,t,1,n);o.push(` body: ${f};`)}else if(m?.schema){let f=P(m.schema,t,1,n);o.push(` body: ${f};`)}else{let f=Object.values(a)[0];if(f?.schema){let p=P(f.schema,t,1,n);o.push(` body: ${p};`)}else o.push(" body?: any; // Request body from OpenAPI")}}return o.length===0?"":o.join(`
57
- `)}function st(r,e,t={},n=new Set){let o=e?.find(i=>i.operation?.operationId===r.operationName||i.operation?.operationId===r.operationName.toLowerCase()||i.verb===r.verb.toLowerCase()&&i.path===r.path);if(o?.operation?.responses){let i=o.operation.responses[200]||o.operation.responses[201];if(i?.content){let s=i.content["application/json"]||i.content["*/*"]||Object.values(i.content)[0];if(s?.schema){let a=s.schema;if(a.$ref||a.type!=="object"||!a.properties){let m=P(a,t,0,n);if(m&&m!=="any")return{content:m,isDirectType:!0}}let c=at(a,t,n);if(c.length>0)return{content:c.join(`
58
- `),isDirectType:!1}}}}return{content:"",isDirectType:!1}}function at(r,e={},t=new Set){let n=[];if(r.type==="object"&&r.properties){let o=r.required||[];Object.entries(r.properties).forEach(([i,s])=>{let c=o.includes(i)?"":"?",m=P(s,e,1,t),p=/[^a-zA-Z0-9_$]/.test(i)?`"${i}"`:i;s.description&&n.push(` /** ${s.description} */`),n.push(` ${p}${c}: ${m};`)})}return n}function P(r,e={},t=0,n=new Set){if(!r)return"any";if(r.$ref){let i=r.$ref;if(i.startsWith("#/components/schemas/")){let s=i.replace("#/components/schemas/",""),a=e[s]||s,c=L(a),m=n.has(s)?c:`Schema.${c}`;return r.nullable?`${m} | null`:m}}let o;switch(r.type){case"string":r.enum?o=r.enum.map(a=>`"${a}"`).join(" | "):r.format==="binary"?o="Blob":o="string";break;case"number":case"integer":o="number";break;case"boolean":o="boolean";break;case"array":let i=r.items?P(r.items,e,t,n):"any";o=i.includes("|")?`(${i})[]`:`${i}[]`;break;case"object":if(r.properties){let a=Object.entries(r.properties);if(a.length===0)r.additionalProperties?o=`Record<string, ${r.additionalProperties===!0?"any":P(r.additionalProperties,e,t,n)}>`:o="{}";else{let c=" ".repeat(t+1),m=" ".repeat(t),f=[];a.forEach(([p,l])=>{let y=(r.required||[]).includes(p)?"":"?",v=P(l,e,t+1,n),b=/[^a-zA-Z0-9_$]/.test(p)?`"${p}"`:p;l.description&&f.push(`${c}/** ${l.description} */`),f.push(`${c}${b}${y}: ${v};`)}),o=`{
59
- ${f.join(`
111
+ `)}function mt(n,e,t={},r=new Set){let o=[];n.queryParams&&n.queryParams.length>0&&n.queryParams.forEach(s=>{let a=s.required?"":"?",p=ve(s,t,r);o.push(` ${s.name}${a}: ${p};`)}),n.pathParams&&n.pathParams.length>0&&n.pathParams.forEach(s=>{let a=s.required?"":"?",p=ve(s,t,r);o.push(` ${s.name}${a}: ${p};`)});let i=e?.find(s=>s.operation?.operationId===n.operationName||s.operation?.operationId===n.operationName.toLowerCase()||s.verb===n.verb.toLowerCase()&&s.path===n.path);if(i?.operation?.requestBody){let a=i.operation.requestBody.content,p=a["application/json"]||a["*/*"],l=a["multipart/form-data"]||a["application/x-www-form-urlencoded"];if(p?.schema){let m=R(p.schema,t,1,r);o.push(` body: ${m};`)}else if(l?.schema){let m=R(l.schema,t,1,r);o.push(` body: ${m};`)}else{let m=Object.values(a)[0];if(m?.schema){let f=R(m.schema,t,1,r);o.push(` body: ${f};`)}else o.push(" body?: any; // Request body from OpenAPI")}}return o.length===0?"":o.join(`
112
+ `)}function ft(n,e,t={},r=new Set){let o=e?.find(i=>i.operation?.operationId===n.operationName||i.operation?.operationId===n.operationName.toLowerCase()||i.verb===n.verb.toLowerCase()&&i.path===n.path);if(o?.operation?.responses){let i=o.operation.responses[200]||o.operation.responses[201];if(i?.content){let s=i.content["application/json"]||i.content["*/*"]||Object.values(i.content)[0];if(s?.schema){let a=s.schema;if(a.$ref||a.type!=="object"||!a.properties){let l=R(a,t,0,r);if(l&&l!=="any")return{content:l,isDirectType:!0}}let p=gt(a,t,r);if(p.length>0)return{content:p.join(`
113
+ `),isDirectType:!1}}}}return{content:"",isDirectType:!1}}function gt(n,e={},t=new Set){let r=[];if(n.type==="object"&&n.properties){let o=n.required||[];Object.entries(n.properties).forEach(([i,s])=>{let p=o.includes(i)?"":"?",l=R(s,e,1,t),f=/[^a-zA-Z0-9_$]/.test(i)?`"${i}"`:i;s.description&&r.push(` /** ${s.description} */`),r.push(` ${f}${p}: ${l};`)})}return r}function R(n,e={},t=0,r=new Set){if(!n)return"any";if(n.$ref){let i=n.$ref;if(i.startsWith("#/components/schemas/")){let s=i.replace("#/components/schemas/",""),a=e[s]||s,p=Y(a),l=r.has(s)?p:`Schema.${p}`;return n.nullable?`${l} | null`:l}}let o;switch(n.type){case"string":n.enum?o=n.enum.map(a=>`"${a}"`).join(" | "):n.format==="binary"?o="Blob":o="string";break;case"number":case"integer":o="number";break;case"boolean":o="boolean";break;case"array":let i=n.items?R(n.items,e,t,r):"any";o=i.includes("|")?`(${i})[]`:`${i}[]`;break;case"object":if(n.properties){let a=Object.entries(n.properties);if(a.length===0)n.additionalProperties?o=`Record<string, ${n.additionalProperties===!0?"any":R(n.additionalProperties,e,t,r)}>`:o="{}";else{let p=" ".repeat(t+1),l=" ".repeat(t),m=[];a.forEach(([f,g])=>{let b=(n.required||[]).includes(f)?"":"?",T=R(g,e,t+1,r),u=/[^a-zA-Z0-9_$]/.test(f)?`"${f}"`:f;g.description&&m.push(`${p}/** ${g.description} */`),m.push(`${p}${u}${b}: ${T};`)}),o=`{
114
+ ${m.join(`
60
115
  `)}
61
- ${m}}`}}else r.additionalProperties?o=`Record<string, ${r.additionalProperties===!0?"any":P(r.additionalProperties,e,t,n)}>`:o="any";break;default:o="any";break}return r.nullable?`${o} | null`:o}function he(r,e={},t=new Set){return r.schema?P(r.schema,e,0,t):"any"}u();function Oe(r,e){let{groupKey:t}=e,n=e.httpClient?.importReturnTypeName||"IRestFulEndpointsQueryReturn",o=r.map(p=>{let l=p.isQuery?"query":"mutation",h=p.isVoidArg?"void":`${n}<${p.argTypeName}>`,y=p.path;p.pathParams&&p.pathParams.length>0?(p.pathParams.forEach(b=>{y=y.replace(`{${b.name}}`,`\${queryArg.variables.${b.name}}`)}),y="`"+y+"`"):y=`"${y}"`;let v="";p.queryParams&&p.queryParams.length>0&&(v=`
116
+ ${l}}`}}else n.additionalProperties?o=`Record<string, ${n.additionalProperties===!0?"any":R(n.additionalProperties,e,t,r)}>`:o="any";break;default:o="any";break}return n.nullable?`${o} | null`:o}function ve(n,e={},t=new Set){return n.schema?R(n.schema,e,0,t):"any"}c();function xe(n,e){let{groupKey:t}=e,r=e.httpClient?.importReturnTypeName||"IRestFulEndpointsQueryReturn",o=n.map(u=>{let A=u.isQuery?"query":"mutation",P=u.isVoidArg?"void":`${r}<${u.argTypeName}>`,S=u.path;u.pathParams&&u.pathParams.length>0?(u.pathParams.forEach(D=>{S=S.replace(`{${D.name}}`,`\${queryArg.variables.${D.name}}`)}),S="`"+S+"`"):S=`"${S}"`;let x="";u.queryParams&&u.queryParams.length>0&&(x=`
62
117
  params: {
63
- ${p.queryParams.map(C=>` ${C.name}: queryArg.variables.${C.name},`).join(`
118
+ ${u.queryParams.map(I=>` ${I.name}: queryArg.variables.${I.name},`).join(`
64
119
  `)}
65
- },`);let S="";if(p.tags&&p.tags.length>0){let b=p.tags.map(C=>`ECacheTagTypes.${C.split(/\s+/).map(N=>N.charAt(0).toUpperCase()+N.slice(1)).join("")}`).join(", ");p.isQuery?S=`
66
- providesTags: [${b}],`:S=`
67
- invalidatesTags: (result, error) => error ? [] : [${b}],`}return` /** ${p.summary||p.operationName} */
68
- ${p.operationName}: build.${l}<
69
- ${p.responseTypeName},
70
- ${h}
71
- >({${S}
120
+ },`);let N="";if(u.tags&&u.tags.length>0){let D=u.tags.map(I=>`ECacheTagTypes.${I.split(/\s+/).map(J=>J.charAt(0).toUpperCase()+J.slice(1)).join("")}`).join(", ");u.isQuery?N=`
121
+ providesTags: [${D}],`:N=`
122
+ invalidatesTags: (result, error) => error ? [] : [${D}],`}return` /** ${u.summary||u.operationName} */
123
+ ${u.operationName}: build.${A}<
124
+ ${u.responseTypeName},
125
+ ${P}
126
+ >({${N}
72
127
  query: (queryArg) => ({
73
- url: ${y},
74
- method: "${p.verb.toUpperCase()}",
75
- contentType: "${p.contentType}",${v}${p.hasRequestBody?`
76
- body: queryArg.variables.body,`:""}${p.isVoidArg?"":`
128
+ url: ${S},
129
+ method: "${u.verb.toUpperCase()}",
130
+ contentType: "${u.contentType}",${x}${u.hasRequestBody?`
131
+ body: queryArg.variables.body,`:""}${u.isVoidArg?"":`
77
132
  fetchOptions: queryArg?.fetchOptions,`}
78
133
  }),
79
134
  }),`}).join(`
80
- `),i=[...new Set([...r.map(p=>p.argTypeName),...r.map(p=>p.responseTypeName)])].filter(p=>p!=="VoidApiArg"),s=i.length>0?`import type { ${i.join(", ")} } from "./types";`:"",a=e.apiConfiguration?`import {${e.apiConfiguration.importName} as api} from "${e.apiConfiguration.file.replace(/\.ts$/,"")}";
135
+ `),i=[...new Set([...n.map(u=>u.argTypeName),...n.map(u=>u.responseTypeName)])].filter(u=>u!=="VoidApiArg"),s=i.length>0?`import type { ${i.join(", ")} } from "./types";`:"",a=e.apiConfiguration?`import {${e.apiConfiguration.importName} as api} from "${e.apiConfiguration.file.replace(/\.ts$/,"")}";
81
136
  `:`import {baseApi as api} from "../../../library/redux/baseApi";
82
- `,c=e.httpClient?`import {${e.httpClient.importReturnTypeName}} from "${e.httpClient.file}";
137
+ `,p=e.httpClient?`import {${e.httpClient.importReturnTypeName}} from "${e.httpClient.file}";
83
138
  `:`import {IRestFulEndpointsQueryReturn} from "@acrool/react-fetcher";
84
- `,f=r.some(p=>p.tags&&p.tags.length>0)?`import {ECacheTagTypes} from "../tagTypes";
85
- `:"";return`/* eslint-disable */
139
+ `,m=n.some(u=>u.tags&&u.tags.length>0)?`import {ECacheTagTypes} from "../tagTypes";
140
+ `:"",f=n.some(u=>u.isQuery),g=f&&!!e.useLazyQueries,O=n.some(u=>!u.isQuery),b=[];f&&b.push("UseSimpleQuery"),O&&b.push("UseSimpleMutation"),g&&b.push("UseSimpleLazyQuery");let T=b.length>0?`import type { ${b.join(", ")} } from "../common-types";
141
+ `:"",C=n.map(u=>{let A=u.operationName.charAt(0).toUpperCase()+u.operationName.slice(1),P=u.isVoidArg?"void":`${r}<${u.argTypeName}>`,S=[];if(u.isQuery){let x=`use${A}Query`;if(S.push(`export const ${x} = injectedRtkApi.${x} as UseSimpleQuery<${u.responseTypeName}, ${P}>;`),e.useLazyQueries){let N=`useLazy${A}Query`;S.push(`export const ${N} = injectedRtkApi.${N} as UseSimpleLazyQuery<${u.responseTypeName}, ${P}>;`)}}else{let x=`use${A}Mutation`;S.push(`export const ${x} = injectedRtkApi.${x} as UseSimpleMutation<${u.responseTypeName}, ${P}>;`)}return S.join(`
142
+ `)}).join(`
143
+ `);return`/* eslint-disable */
86
144
  // [Warning] Generated automatically - do not edit manually
87
145
 
88
- ${a}${c}${f}
146
+ ${a}${p}${m}${T}
89
147
  ${s}
90
148
 
91
149
 
@@ -95,21 +153,17 @@ ${o}
95
153
  }),
96
154
  });
97
155
 
98
- export const {
99
- ${r.map(p=>{let l=p.operationName.charAt(0).toUpperCase()+p.operationName.slice(1);if(p.isQuery){let h=`use${l}Query`;if(e.useLazyQueries){let y=`useLazy${l}Query`;return` ${h},
100
- ${y},`}else return` ${h},`}else return` ${`use${l}Mutation`},`}).join(`
101
- `)}
102
- } = injectedRtkApi;
156
+ ${C}
103
157
 
104
158
  export default injectedRtkApi;
105
- `}u();function ve(r,e){return`/* eslint-disable */
159
+ `}c();function Ae(n,e){return`/* eslint-disable */
106
160
  // [Warning] Generated automatically - do not edit manually
107
161
 
108
162
  import api from "./query.generated";
109
163
 
110
164
  const enhancedApi = api.enhanceEndpoints({
111
165
  endpoints: {
112
- ${r.map(o=>o.isQuery?` ${o.operationName}: {
166
+ ${n.map(o=>o.isQuery?` ${o.operationName}: {
113
167
  providesTags: (result, error, arg) => [],
114
168
  },`:` ${o.operationName}: {
115
169
  invalidatesTags: (result, error, arg) => [],
@@ -119,13 +173,13 @@ ${r.map(o=>o.isQuery?` ${o.operationName}: {
119
173
  });
120
174
 
121
175
  export default enhancedApi;
122
- `}var M=class{constructor(e,t){this.parserService=e;this.options=t;this.infoExtractor=new $(t)}infoExtractor;async generate(){let e=this.parserService.getOperationDefinitions(this.options.filterEndpoints),t=this.infoExtractor.extractEndpointInfos(e);return this.generateRtkQueryCode(t)}generateRtkQueryCode(e){let t=this.generateTypes(e),n=Oe(e,this.options),o=ve(e,this.options),i=this.generateIndex(),s=e.map(c=>c.operationName),a=new Set;return e.forEach(c=>{c.tags&&Array.isArray(c.tags)&&c.tags.forEach(m=>a.add(m))}),{operationNames:s,tags:Array.from(a),files:{types:t,queryService:n,index:i,enhanceEndpoints:o}}}generateTypes(e){let t={...this.options,apiConfiguration:this.options.apiConfiguration||{file:"@/store/webapi",importName:"WebApiConfiguration"}},o=this.parserService.getApiGenerator().aliases.reduce((s,a)=>{if(Se.isInterfaceDeclaration(a)||Se.isTypeAliasDeclaration(a)){let c=a.name.text;return{...s,[c]:a}}return s},{}),i=this.parserService.getOperationDefinitions(this.options.filterEndpoints);return K(e,t,o,i)}generateIndex(){let e=this.options.groupKey||"";return`/* eslint-disable */
176
+ `}var Q=class{constructor(e,t){this.parserService=e;this.options=t;this.infoExtractor=new F(t)}infoExtractor;async generate(){let e=this.parserService.getOperationDefinitions(this.options.filterEndpoints),t=this.infoExtractor.extractEndpointInfos(e);return this.generateRtkQueryCode(t)}generateRtkQueryCode(e){let t=this.generateTypes(e),r=xe(e,this.options),o=Ae(e,this.options),i=this.generateIndex(),s=e.map(p=>p.operationName),a=new Set;return e.forEach(p=>{p.tags&&Array.isArray(p.tags)&&p.tags.forEach(l=>a.add(l))}),{operationNames:s,tags:Array.from(a),files:{types:t,queryService:r,index:i,enhanceEndpoints:o}}}generateTypes(e){let t={...this.options,apiConfiguration:this.options.apiConfiguration||{file:"@/store/webapi",importName:"WebApiConfiguration"}},o=this.parserService.getApiGenerator().aliases.reduce((s,a)=>{if(Pe.isInterfaceDeclaration(a)||Pe.isTypeAliasDeclaration(a)){let p=a.name.text;return{...s,[p]:a}}return s},{}),i=this.parserService.getOperationDefinitions(this.options.filterEndpoints);return V(e,t,o,i)}generateIndex(){let e=this.options.groupKey||"";return`/* eslint-disable */
123
177
  // [Warning] Generated automatically - do not edit manually
124
178
 
125
179
  export { default as ${e?`${e.charAt(0).toLowerCase()+e.slice(1)}Api`:"api"} } from "./enhanceEndpoints";
126
180
  export * from "./query.generated";
127
181
  export * from "./types";
128
- `}};u();function be(){return`/* eslint-disable */
182
+ `}};c();function Ce(){return`/* eslint-disable */
129
183
  // [Warning] Generated automatically - do not edit manually
130
184
 
131
185
  /**
@@ -138,7 +192,7 @@ export function withoutUndefined(obj?: Record<string, any>) {
138
192
  );
139
193
  }
140
194
 
141
- `}u();function pt(r){return r.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}function xe(r){return r.length===0?`/* eslint-disable */
195
+ `}c();function yt(n){return n.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}function $e(n){return n.length===0?`/* eslint-disable */
142
196
  // [Warning] Generated automatically - do not edit manually
143
197
 
144
198
  export enum ECacheTagTypes {
@@ -147,14 +201,14 @@ export enum ECacheTagTypes {
147
201
  // [Warning] Generated automatically - do not edit manually
148
202
 
149
203
  export enum ECacheTagTypes {
150
- ${r.sort().map(t=>` ${pt(t)} = '${t}',`).join(`
204
+ ${n.sort().map(t=>` ${yt(t)} = '${t}',`).join(`
151
205
  `)}
152
206
  }
153
- `}u();function A(r,e){if(!(!r||typeof r!="object")){if(r.$ref&&typeof r.$ref=="string"){let t=r.$ref.match(/^#\/components\/schemas\/(.+)$/);t&&e.add(t[1])}if(r.properties)for(let t of Object.values(r.properties))A(t,e);r.items&&A(r.items,e),r.additionalProperties&&typeof r.additionalProperties=="object"&&A(r.additionalProperties,e);for(let t of["allOf","oneOf","anyOf"])if(Array.isArray(r[t]))for(let n of r[t])A(n,e)}}function ct(r){let e=new Set;for(let t of r){let n=t.operation;if(n.parameters)for(let o of n.parameters){let i=o;i.schema&&A(i.schema,e)}if(n.requestBody){let o=n.requestBody;if(o.content)for(let i of Object.values(o.content))i.schema&&A(i.schema,e)}if(n.responses)for(let o of Object.values(n.responses)){let i=o;if(i.content)for(let s of Object.values(i.content))s.schema&&A(s.schema,e)}}return e}function ut(r,e){let t=new Set,n=[...r];for(;n.length>0;){let o=n.pop();if(t.has(o))continue;t.add(o);let i=e[o];if(!i)continue;let s=new Set;A(i,s);for(let a of s)t.has(a)||n.push(a)}return t}function Te(r,e,t){let n=new Map;for(let[m,f]of r){let p=ct(f),l=ut(p,e);n.set(m,l)}let o=new Map;for(let[m,f]of n)for(let p of f)o.has(p)||o.set(p,new Set),o.get(p).add(m);let i=new Set,s=new Map,a=new Set;for(let m of t){let f=o.get(m);if(!f||f.size===0)a.add(m);else if(f.size===1){let p=[...f][0];s.has(p)||s.set(p,new Set),s.get(p).add(m)}else i.add(m)}let c=!0;for(;c;){c=!1;for(let[m,f]of s)for(let p of[...f]){let l=e[p];if(!l)continue;let h=new Set;A(l,h);for(let y of h)for(let[v,S]of s)v!==m&&S.has(y)&&(i.add(y),i.add(p),S.delete(y),f.delete(p),c=!0)}}return{sharedSchemas:i,groupLocalSchemas:s,unusedSchemas:a}}var k=class{_options;openApiService=new F;groupService=new I;fileWriterService=new j;openApiDoc=null;parserService=null;schemaInterfaces={};actualSchemaFile="";generatedContent={groups:[],commonTypes:"",componentSchema:"",doNotModify:"",utils:"",tagTypes:""};allTags=new Set;groupOperationDefs=new Map;groupGenerationOptions=new Map;constructor(e){this._options=e}async generateAll(){return await this.prepare(),await this.generateApi(),this.splitSchemaByUsage(),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 G(this.openApiDoc,this._options),this.parserService.initialize();let e=this.parserService.getApiGenerator();this.schemaInterfaces=e.aliases.reduce((t,n)=>{if(Pe.isInterfaceDeclaration(n)||Pe.isTypeAliasDeclaration(n)){let o=n.name.text;return{...t,[o]:n}}return t},{})}async generateApi(){if(!this.openApiDoc||!this.parserService)throw new Error("\u8ACB\u5148\u8ABF\u7528 prepare() \u65B9\u6CD5");let e=this.openApiService.getPaths(this.openApiDoc),t=this.groupService.groupPaths(e,this._options.outputFiles);for(let n of Object.values(t))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(i=>this.allTags.add(i)))}catch(o){throw new Error(`\u7FA4\u7D44 ${n.groupKey} \u751F\u6210\u5931\u6557: ${o}`)}}splitSchemaByUsage(){if(!this.openApiDoc||this.groupOperationDefs.size===0)return;let e=this.openApiDoc.components?.schemas??{},t=Object.keys(this.schemaInterfaces),n=Te(this.groupOperationDefs,e,t);this.sharedSchemaNames=n.sharedSchemas;for(let o of this.generatedContent.groups){let i=n.groupLocalSchemas.get(o.groupKey);if(!i||i.size===0)continue;let s=this.groupGenerationOptions.get(o.groupKey);if(!s||!this.parserService)continue;let a={};for(let h of i)this.schemaInterfaces[h]&&(a[h]=this.schemaInterfaces[h]);let c=new $(s),m=this.groupOperationDefs.get(o.groupKey)??[],f=c.extractEndpointInfos(m),p={...s,apiConfiguration:s.apiConfiguration||{file:"@/store/webapi",importName:"WebApiConfiguration"}},l=K(f,p,this.schemaInterfaces,m,{localSchemaInterfaces:a,localSchemaNames:i});o.content.files.types=l}}sharedSchemaNames=null;async generateCommonTypesContent(){this.generatedContent.commonTypes=ge()}async generateSchemaContent(){this.generatedContent.componentSchema=de(this.schemaInterfaces,this.sharedSchemaNames??void 0)}async generateDoNotModifyContent(){this.generatedContent.doNotModify=ye()}async generateUtilsContent(){this.generatedContent.utils=be()}async generateTagTypesContent(){let e=Array.from(this.allTags);this.generatedContent.tagTypes=xe(e)}async release(){let e=[],t=[],n=[];try{for(let a of this.generatedContent.groups)try{if(a.content?.files){let c=E.dirname(a.outputPath),m=await this.fileWriterService.writeGroupFiles(c,{types:a.content.files.types,queryService:a.content.files.queryService,enhanceEndpoints:a.content.files.enhanceEndpoints,index:a.content.files.index});e.push(...m),n.push(a.groupKey)}}catch(c){t.push(new Error(`\u5BEB\u5165\u7FA4\u7D44 ${a.groupKey} \u5931\u6557: ${c}`))}let o=this.generatedContent.groups[0]?E.dirname(E.dirname(this.generatedContent.groups[0].outputPath)):"./generated";if(this.generatedContent.commonTypes||this.generatedContent.doNotModify||this.generatedContent.utils){let a=await this.fileWriterService.writeSharedFiles(o,{commonTypes:this.generatedContent.commonTypes||void 0,doNotModify:this.generatedContent.doNotModify||void 0,utils:this.generatedContent.utils||void 0});e.push(...a)}if(this.generatedContent.tagTypes){let a=await this.fileWriterService.writeFile(E.join(o,"tagTypes.ts"),this.generatedContent.tagTypes);e.push(a)}if(this.generatedContent.componentSchema){let a=await this.fileWriterService.writeSchemaFile(o,this.generatedContent.componentSchema);e.push(...a)}let i=this.generateMainIndex(n),s=await this.fileWriterService.writeFile(E.join(o,"index.ts"),i);e.push(s)}catch(o){t.push(o)}return{success:t.length===0,writtenFiles:e,errors:t,generatedGroups:n}}async generateApiGroupContent(e,t){let{outputFiles:n,...o}=e,i={...o,schemaFile:this.actualSchemaFile,outputFile:t.outputPath,sharedTypesFile:`${n.outputDir}/common-types.ts`,filterEndpoints:this.groupService.createGroupFilter(t.groupKey,n),queryMatch:n.queryMatch,groupKey:t.groupKey};if(!this.openApiDoc||!this.parserService)throw new Error("OpenAPI \u6587\u6A94\u672A\u521D\u59CB\u5316\uFF0C\u8ACB\u5148\u8ABF\u7528 prepare()");let s=this.parserService.getOperationDefinitions(i.filterEndpoints);return this.groupOperationDefs.set(t.groupKey,s),this.groupGenerationOptions.set(t.groupKey,i),await new M(this.parserService,i).generate()}generateMainIndex(e){return`/* eslint-disable */
207
+ `}c();function w(n,e){if(!(!n||typeof n!="object")){if(n.$ref&&typeof n.$ref=="string"){let t=n.$ref.match(/^#\/components\/schemas\/(.+)$/);t&&e.add(t[1])}if(n.properties)for(let t of Object.values(n.properties))w(t,e);n.items&&w(n.items,e),n.additionalProperties&&typeof n.additionalProperties=="object"&&w(n.additionalProperties,e);for(let t of["allOf","oneOf","anyOf"])if(Array.isArray(n[t]))for(let r of n[t])w(r,e)}}function dt(n){let e=new Set;for(let t of n){let r=t.operation;if(r.parameters)for(let o of r.parameters){let i=o;i.schema&&w(i.schema,e)}if(r.requestBody){let o=r.requestBody;if(o.content)for(let i of Object.values(o.content))i.schema&&w(i.schema,e)}if(r.responses)for(let o of Object.values(r.responses)){let i=o;if(i.content)for(let s of Object.values(i.content))s.schema&&w(s.schema,e)}}return e}function ht(n,e){let t=new Set,r=[...n];for(;r.length>0;){let o=r.pop();if(t.has(o))continue;t.add(o);let i=e[o];if(!i)continue;let s=new Set;w(i,s);for(let a of s)t.has(a)||r.push(a)}return t}function Re(n,e,t){let r=new Map;for(let[l,m]of n){let f=dt(m),g=ht(f,e);r.set(l,g)}let o=new Map;for(let[l,m]of r)for(let f of m)o.has(f)||o.set(f,new Set),o.get(f).add(l);let i=new Set,s=new Map,a=new Set;for(let l of t){let m=o.get(l);if(!m||m.size===0)a.add(l);else if(m.size===1){let f=[...m][0];s.has(f)||s.set(f,new Set),s.get(f).add(l)}else i.add(l)}let p=!0;for(;p;){p=!1;for(let[l,m]of s)for(let f of[...m]){let g=e[f];if(!g)continue;let O=new Set;w(g,O);for(let b of O)for(let[T,C]of s)T!==l&&C.has(b)&&(i.add(b),i.add(f),C.delete(b),m.delete(f),p=!0)}}return{sharedSchemas:i,groupLocalSchemas:s,unusedSchemas:a}}var W=class{_options;openApiService=new G;groupService=new M;fileWriterService=new k;openApiDoc=null;parserService=null;schemaInterfaces={};actualSchemaFile="";generatedContent={groups:[],commonTypes:"",componentSchema:"",doNotModify:"",utils:"",tagTypes:""};allTags=new Set;groupOperationDefs=new Map;groupGenerationOptions=new Map;constructor(e){this._options=e}async generateAll(){return await this.prepare(),await this.generateApi(),this.splitSchemaByUsage(),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 U(this.openApiDoc,this._options),this.parserService.initialize();let e=this.parserService.getApiGenerator();this.schemaInterfaces=e.aliases.reduce((t,r)=>{if(we.isInterfaceDeclaration(r)||we.isTypeAliasDeclaration(r)){let o=r.name.text;return{...t,[o]:r}}return t},{})}async generateApi(){if(!this.openApiDoc||!this.parserService)throw new Error("\u8ACB\u5148\u8ABF\u7528 prepare() \u65B9\u6CD5");let e=this.openApiService.getPaths(this.openApiDoc),t=this.groupService.groupPaths(e,this._options.outputFiles);for(let r of Object.values(t))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(i=>this.allTags.add(i)))}catch(o){throw new Error(`\u7FA4\u7D44 ${r.groupKey} \u751F\u6210\u5931\u6557: ${o}`)}}splitSchemaByUsage(){if(!this.openApiDoc||this.groupOperationDefs.size===0)return;let e=this.openApiDoc.components?.schemas??{},t=Object.keys(this.schemaInterfaces),r=Re(this.groupOperationDefs,e,t);this.sharedSchemaNames=r.sharedSchemas;for(let o of this.generatedContent.groups){let i=r.groupLocalSchemas.get(o.groupKey);if(!i||i.size===0)continue;let s=this.groupGenerationOptions.get(o.groupKey);if(!s||!this.parserService)continue;let a={};for(let O of i)this.schemaInterfaces[O]&&(a[O]=this.schemaInterfaces[O]);let p=new F(s),l=this.groupOperationDefs.get(o.groupKey)??[],m=p.extractEndpointInfos(l),f={...s,apiConfiguration:s.apiConfiguration||{file:"@/store/webapi",importName:"WebApiConfiguration"}},g=V(m,f,this.schemaInterfaces,l,{localSchemaInterfaces:a,localSchemaNames:i});o.content.files.types=g}}sharedSchemaNames=null;async generateCommonTypesContent(){this.generatedContent.commonTypes=Oe()}async generateSchemaContent(){this.generatedContent.componentSchema=Te(this.schemaInterfaces,this.sharedSchemaNames??void 0)}async generateDoNotModifyContent(){this.generatedContent.doNotModify=Se()}async generateUtilsContent(){this.generatedContent.utils=Ce()}async generateTagTypesContent(){let e=Array.from(this.allTags);this.generatedContent.tagTypes=$e(e)}async release(){let e=[],t=[],r=[];try{for(let a of this.generatedContent.groups)try{if(a.content?.files){let p=j.dirname(a.outputPath),l=await this.fileWriterService.writeGroupFiles(p,{types:a.content.files.types,queryService:a.content.files.queryService,enhanceEndpoints:a.content.files.enhanceEndpoints,index:a.content.files.index});e.push(...l),r.push(a.groupKey)}}catch(p){t.push(new Error(`\u5BEB\u5165\u7FA4\u7D44 ${a.groupKey} \u5931\u6557: ${p}`))}let o=this.generatedContent.groups[0]?j.dirname(j.dirname(this.generatedContent.groups[0].outputPath)):"./generated";if(this.generatedContent.commonTypes||this.generatedContent.doNotModify||this.generatedContent.utils){let a=await this.fileWriterService.writeSharedFiles(o,{commonTypes:this.generatedContent.commonTypes||void 0,doNotModify:this.generatedContent.doNotModify||void 0,utils:this.generatedContent.utils||void 0});e.push(...a)}if(this.generatedContent.tagTypes){let a=await this.fileWriterService.writeFile(j.join(o,"tagTypes.ts"),this.generatedContent.tagTypes);e.push(a)}if(this.generatedContent.componentSchema){let a=await this.fileWriterService.writeSchemaFile(o,this.generatedContent.componentSchema);e.push(...a)}let i=this.generateMainIndex(r),s=await this.fileWriterService.writeFile(j.join(o,"index.ts"),i);e.push(s)}catch(o){t.push(o)}return{success:t.length===0,writtenFiles:e,errors:t,generatedGroups:r}}async generateApiGroupContent(e,t){let{outputFiles:r,...o}=e,i={...o,schemaFile:this.actualSchemaFile,outputFile:t.outputPath,sharedTypesFile:`${r.outputDir}/common-types.ts`,filterEndpoints:this.groupService.createGroupFilter(t.groupKey,r),queryMatch:r.queryMatch,groupKey:t.groupKey};if(!this.openApiDoc||!this.parserService)throw new Error("OpenAPI \u6587\u6A94\u672A\u521D\u59CB\u5316\uFF0C\u8ACB\u5148\u8ABF\u7528 prepare()");let s=this.parserService.getOperationDefinitions(i.filterEndpoints);return this.groupOperationDefs.set(t.groupKey,s),this.groupGenerationOptions.set(t.groupKey,i),await new Q(this.parserService,i).generate()}generateMainIndex(e){return`/* eslint-disable */
154
208
  // [Warning] Generated automatically - do not edit manually
155
209
 
156
210
  export * from "./schema";
157
- ${e.map(n=>`export * from "./${n}";`).join(`
211
+ ${e.map(r=>`export * from "./${r}";`).join(`
158
212
  `)}
159
- `}};async function Ce(r){let t=await new k(r).generateAll();if(!t.success&&t.errors.length>0)throw t.errors[0]}var Ae=mt(g);async function gt(r){let e=lt(process.cwd(),r);process.chdir(ft(e));let t=Ae(e),n=t.default??t;"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&&Y(n.outputFiles.outputDir);try{console.log("Generating multiple outputs..."),await Ce(n),console.log("Done")}catch(o){console.error("Generation failed:",o),process.exit(1)}}async function dt(){let r=Ae("../../package.json"),e=J();V.version(r.version).usage("<path/to/config.js>").parse(process.argv);let t=V.args[0];if(V.args.length===0){V.help();return}X(t),ee(t,e),await gt(t)}dt().catch(r=>{console.error("CLI execution failed:",r),process.exit(1)});export{gt as runGeneration};
213
+ `}};async function Ne(n){let t=await new W(n).generateAll();if(!t.success&&t.errors.length>0)throw t.errors[0]}var Ee=bt(y);async function St(n){let e=Tt(process.cwd(),n);process.chdir(Ot(e));let t=Ee(e),r=t.default??t;"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&&ne(r.outputFiles.outputDir);try{console.log("Generating multiple outputs..."),await Ne(r),console.log("Done")}catch(o){console.error("Generation failed:",o),process.exit(1)}}async function vt(){let n=Ee("../../package.json"),e=re();L.version(n.version).usage("<path/to/config.js>").parse(process.argv);let t=L.args[0];if(L.args.length===0){L.help();return}oe(t),ie(t,e),await St(t)}vt().catch(n=>{console.error("CLI execution failed:",n),process.exit(1)});export{St as runGeneration};
160
214
  //# sourceMappingURL=cli.mjs.map