@bitstack/ng-query-codegen-openapi 0.0.37 → 0.0.38-alpha.1

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 Pe=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var Ne=Object.prototype.hasOwnProperty;var M=(r,t)=>()=>(r&&(t=r(r=0)),t);var Ae=(r,t)=>{for(var e in t)I(r,e,{get:t[e],enumerable:!0})},Ee=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $e(t))!Ne.call(r,o)&&o!==e&&I(r,o,{get:()=>t[o],enumerable:!(n=Pe(t,o))||n.enumerable});return r};var Re=r=>Ee(I({},"__esModule",{value:!0}),r);import{fileURLToPath as Se}from"node:url";var qe,l,c=M(()=>{"use strict";qe=()=>Se(import.meta.url),l=qe()});var ne={};Ae(ne,{argumentMatches:()=>Ue,defaultIsDataResponse:()=>Qe,getOperationName:()=>E,getOverrides:()=>D,getTags:()=>Ve,operationMatches:()=>re});import{getOperationName as ke}from"oazapfts/generate";function Qe(r,t){if(t&&r==="default")return!0;let e=Number(r);return!Number.isNaN(e)&&e>=200&&e<300}function E({verb:r,path:t}){return ke(r,t,void 0)}function Ve({verb:r,pathItem:t}){return r?t[r]?.tags||[]:[]}function te(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 re(r){let t=typeof r=="function"?r:te(r);return function(n){if(!r)return!0;let o=E(n);return t(o,n)}}function Ue(r){let t=typeof r=="function"?r:te(r);return function(n){if(!r||n.in==="path")return!0;let o=n.name;return t(o,n)}}function D(r,t){return t?.find(e=>re(e.pattern)(r))}var K=M(()=>{"use strict";c()});c();import j from"commander";import{createRequire as Je}from"node:module";c();import Fe from"commander";import{createRequire as we}from"node:module";import{resolve as k}from"node:path";import{existsSync as je,rmSync as Ie,readdirSync as ut,statSync as mt,mkdirSync as lt}from"node:fs";var x=we(l);function Q(r){let t=["/","/usr","/etc","/var","/home","/Users",".",".."],e=k(r);t.some(n=>e===k(n))&&(console.error(`Dangerous path detected: ${e}. Refusing to delete.`),process.exit(1)),je(r)&&(console.log(`Cleaning output directory: ${r}`),Ie(r,{recursive:!0,force:!0}),console.log(`Directory cleaned: ${r}`))}function V(){try{if(x.resolve("esbuild")&&x.resolve("esbuild-runner"))return x("esbuild-runner/register"),!0}catch{}try{if(x.resolve("typescript")&&x.resolve("ts-node"))return x("ts-node").register({transpileOnly:!0,compilerOptions:{target:"es6",module:"commonjs"}}),!0}catch{}return!1}function U(r){(!r||!/\.([mc]?(jsx?|tsx?)|jsonc?)?$/.test(r))&&(console.error("Please provide a valid configuration file."),Fe.help())}function W(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 Xe,resolve as et}from"node:path";c();c();import F from"node:path";import fe from"typescript";c();c();function P(r){return r.replace(r[0],r[0].toUpperCase())}c();import G from"node:fs";import Ge from"node:path";c();function _(r){try{new URL(r)}catch{return!1}return!0}async function B(r,t){if(!_(r))throw new Error(`remoteFile must be a valid URL: ${r}`);try{let e=Ge.dirname(t);G.existsSync(e)||await G.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 G.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 z=["get","put","post","delete","options","head","patch","trace"];function L(r){return Object.entries(r.paths).flatMap(([t,e])=>e?Object.entries(e).filter(n=>z.includes(n[0])).map(([n,o])=>({path:t,verb:n,pathItem:e,operation:o})):[])}c();import De from"@apidevtools/swagger-parser";import Ke from"swagger2openapi";async function H(r,t){let e=await De.bundle(r,{resolve:{http:t}});return"openapi"in e&&e.openapi.startsWith("3")?e:(await Ke.convertObj(e,{})).openapi}c();function Z(r,t,e,n){return n?n(r,t):e?.type?e.type==="query":r==="get"}var $=class{docCache={};async getDocument(t,e){if(this.docCache[t])return this.docCache[t];let n=await H(t,e);return this.docCache[t]=n,n}async downloadSchema(t,e){return B(t,e)}getPaths(t){return Object.keys(t.paths||{})}clearCache(){this.docCache={}}};c();import Y 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?Y(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=Y(e.groupKeyMatch(s)||"");return a!==t&&(a||"_common")!==t?!1:e.filterEndpoint?e.filterEndpoint(n,s,t):!0}}};c();import ee from"node:fs";import d from"node:path";c();import Me from"node:path";import J from"node:fs";async function X(r){let t=Me.dirname(r);J.existsSync(t)||await J.promises.mkdir(t,{recursive:!0})}var A=class{async writeFile(t,e){try{let n=d.resolve(process.cwd(),t);return d.basename(n)==="enhanceEndpoints.ts"&&ee.existsSync(n)?{path:n,success:!0}:(await X(n),ee.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[d.join(t,"types.ts")]=e.types),e.queryService&&(n[d.join(t,"query.generated.ts")]=e.queryService),e.enhanceEndpoints&&(n[d.join(t,"enhanceEndpoints.ts")]=e.enhanceEndpoints),e.index&&(n[d.join(t,"index.ts")]=e.index),this.writeFiles(n)}async writeSharedFiles(t,e){let n={};return e.commonTypes&&(n[d.join(t,"common-types.ts")]=e.commonTypes),e.tagTypes&&(n[d.join(t,"tagTypes.ts")]=e.tagTypes),e.doNotModify&&(n[d.join(t,"DO_NOT_MODIFY.md")]=e.doNotModify),e.utils&&(n[d.join(t,"utils.ts")]=e.utils),this.writeFiles(n)}async writeSchemaFile(t,e){let n={};return n[d.join(t,"schema.ts")]=e,this.writeFiles(n)}};c();import We from"oazapfts/generate";var R=class{constructor(t,e){this.v3Doc=t;this.apiGen=new We(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}=(K(),Re(ne));return L(this.v3Doc).filter(e(t))}getApiGenerator(){return this.apiGen}getDocument(){return this.v3Doc}getSchemaTypeNames(){return new Set}};c();function oe(){return`/* eslint-disable */
2
+ var I=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var Ne=Object.prototype.hasOwnProperty;var Q=(r,t)=>()=>(r&&(t=r(r=0)),t);var Ae=(r,t)=>{for(var e in t)I(r,e,{get:t[e],enumerable:!0})},Ee=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $e(t))!Ne.call(r,o)&&o!==e&&I(r,o,{get:()=>t[o],enumerable:!(n=Pe(t,o))||n.enumerable});return r};var Re=r=>Ee(I({},"__esModule",{value:!0}),r);import{fileURLToPath as Se}from"node:url";var qe,l,c=Q(()=>{"use strict";qe=()=>Se(import.meta.url),l=qe()});var ne={};Ae(ne,{argumentMatches:()=>Ue,defaultIsDataResponse:()=>ke,getOperationName:()=>E,getOverrides:()=>D,getTags:()=>Ve,operationMatches:()=>re});import{getOperationName as Me}from"oazapfts/generate";function ke(r,t){if(t&&r==="default")return!0;let e=Number(r);return!Number.isNaN(e)&&e>=200&&e<300}function E({verb:r,path:t}){return Me(r,t,void 0)}function Ve({verb:r,pathItem:t}){return r?t[r]?.tags||[]:[]}function te(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 re(r){let t=typeof r=="function"?r:te(r);return function(n){if(!r)return!0;let o=E(n);return t(o,n)}}function Ue(r){let t=typeof r=="function"?r:te(r);return function(n){if(!r||n.in==="path")return!0;let o=n.name;return t(o,n)}}function D(r,t){return t?.find(e=>re(e.pattern)(r))}var K=Q(()=>{"use strict";c()});c();import j from"commander";import{createRequire as Je}from"node:module";c();import Fe from"commander";import{createRequire as we}from"node:module";import{resolve as M}from"node:path";import{existsSync as je,rmSync as Ie,readdirSync as ut,statSync as mt,mkdirSync as lt}from"node:fs";var x=we(l);function k(r){let t=["/","/usr","/etc","/var","/home","/Users",".",".."],e=M(r);t.some(n=>e===M(n))&&(console.error(`Dangerous path detected: ${e}. Refusing to delete.`),process.exit(1)),je(r)&&(console.log(`Cleaning output directory: ${r}`),Ie(r,{recursive:!0,force:!0}),console.log(`Directory cleaned: ${r}`))}function V(){try{if(x.resolve("esbuild")&&x.resolve("esbuild-runner"))return x("esbuild-runner/register"),!0}catch{}try{if(x.resolve("typescript")&&x.resolve("ts-node"))return x("ts-node").register({transpileOnly:!0,compilerOptions:{target:"es6",module:"commonjs"}}),!0}catch{}return!1}function U(r){(!r||!/\.([mc]?(jsx?|tsx?)|jsonc?)?$/.test(r))&&(console.error("Please provide a valid configuration file."),Fe.help())}function W(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 Xe,resolve as et}from"node:path";c();c();import F from"node:path";import fe from"typescript";c();c();function P(r){return r.replace(r[0],r[0].toUpperCase())}c();import G from"node:fs";import Ge from"node:path";c();function _(r){try{new URL(r)}catch{return!1}return!0}async function B(r,t){if(!_(r))throw new Error(`remoteFile must be a valid URL: ${r}`);try{let e=Ge.dirname(t);G.existsSync(e)||await G.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 G.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 z=["get","put","post","delete","options","head","patch","trace"];function L(r){return Object.entries(r.paths).flatMap(([t,e])=>e?Object.entries(e).filter(n=>z.includes(n[0])).map(([n,o])=>({path:t,verb:n,pathItem:e,operation:o})):[])}c();import De from"@apidevtools/swagger-parser";import Ke from"swagger2openapi";async function H(r,t){let e=await De.bundle(r,{resolve:{http:t}});return"openapi"in e&&e.openapi.startsWith("3")?e:(await Ke.convertObj(e,{})).openapi}c();function Z(r,t,e,n){return n?n(r,t):e?.type?e.type==="query":r==="get"}var $=class{docCache={};async getDocument(t,e){if(this.docCache[t])return this.docCache[t];let n=await H(t,e);return this.docCache[t]=n,n}async downloadSchema(t,e){return B(t,e)}getPaths(t){return Object.keys(t.paths||{})}clearCache(){this.docCache={}}};c();import Y 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?Y(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=Y(e.groupKeyMatch(s)||"");return a!==t&&(a||"_common")!==t?!1:e.filterEndpoint?e.filterEndpoint(n,s,t):!0}}};c();import ee from"node:fs";import d from"node:path";c();import Qe from"node:path";import J from"node:fs";async function X(r){let t=Qe.dirname(r);J.existsSync(t)||await J.promises.mkdir(t,{recursive:!0})}var A=class{async writeFile(t,e){try{let n=d.resolve(process.cwd(),t);return d.basename(n)==="enhanceEndpoints.ts"&&ee.existsSync(n)?{path:n,success:!0}:(await X(n),ee.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[d.join(t,"types.ts")]=e.types),e.queryService&&(n[d.join(t,"query.generated.ts")]=e.queryService),e.enhanceEndpoints&&(n[d.join(t,"enhanceEndpoints.ts")]=e.enhanceEndpoints),e.index&&(n[d.join(t,"index.ts")]=e.index),this.writeFiles(n)}async writeSharedFiles(t,e){let n={};return e.commonTypes&&(n[d.join(t,"common-types.ts")]=e.commonTypes),e.tagTypes&&(n[d.join(t,"tagTypes.ts")]=e.tagTypes),e.doNotModify&&(n[d.join(t,"DO_NOT_MODIFY.md")]=e.doNotModify),e.utils&&(n[d.join(t,"utils.ts")]=e.utils),this.writeFiles(n)}async writeSchemaFile(t,e){let n={};return n[d.join(t,"schema.ts")]=e,this.writeFiles(n)}};c();import We from"oazapfts/generate";var R=class{constructor(t,e){this.v3Doc=t;this.apiGen=new We(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}=(K(),Re(ne));return L(this.v3Doc).filter(e(t))}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 {
@@ -99,28 +99,18 @@ ${u}}`}}else r.additionalProperties?n=`Record<string, ${r.additionalProperties==
99
99
  /**
100
100
  * ${i.summary}
101
101
  */
102
- ${i.operationName}LazyQuery(): {
103
- trigger: (args: IRestFulEndpointsQueryReturn<${i.argTypeName}>, options?: { skipCache?: boolean }) => Observable<${i.responseTypeName}>
104
- } {
105
- return {
106
- trigger: (args, options = {}) => {
107
- const { skipCache = true } = options;
108
- if (!skipCache) {
109
- const cachedResult = this.ntkQuery.getQueryCache<${i.responseTypeName}>([ECacheTagTypes.${i.queryKeyName}${i.isVoidArg?"":", args.variables"}]);
110
- if (cachedResult) {
111
- return cachedResult;
112
- }
113
- }
114
- return this.apiService.${i.operationName}(args);
115
- }
116
- };
102
+ ${i.operationName}LazyQuery(): LazyQueryResult<${i.responseTypeName}, IRestFulEndpointsQueryReturn<${i.argTypeName}>> {
103
+ return this.ntkQuery.lazyQuery<${i.responseTypeName}, IRestFulEndpointsQueryReturn<${i.argTypeName}>>(
104
+ ECacheTagTypes.${i.queryKeyName},
105
+ (args) => this.apiService.${i.operationName}(args),
106
+ );
117
107
  }`).join("");return`/* eslint-disable */
118
108
  // [Warning] Generated automatically - do not edit manually
119
109
 
120
110
  import {Injectable, inject} from '@angular/core';
121
111
  import {Observable} from 'rxjs';
122
112
  import {HttpErrorResponse} from '@angular/common/http';
123
- import {NtkQueryService, MutationState, QueryState, MutationResponse} from '@core/ntk-query';
113
+ import {NtkQueryService, MutationState, QueryState, MutationResponse, LazyQueryResult, LazyQueryTriggerOptions} from '@core/ntk-query';
124
114
  import {ECacheTagTypes} from '../tagTypes';
125
115
  import {${s}} from './enhanceEndpoints';
126
116
  import {IRestFulEndpointsQueryReturn, RequestOptions} from '../common-types';
@@ -207,5 +197,5 @@ export default ECacheTagTypes;
207
197
  ${t.map(n=>`export * from "./${n}";`).concat(`
208
198
  export * from "./tagTypes";`).join(`
209
199
  `)}
210
- `}};async function de(r){let e=await new w(r).generateAll();if(!e.success&&e.errors.length>0)throw e.errors[0]}var he=Je(l);async function tt(r){let t=et(process.cwd(),r);process.chdir(Xe(t));let e=he(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&&Q(n.outputFiles.outputDir);try{console.log("Generating multiple outputs..."),await de(n),console.log("Done")}catch(o){console.error("Generation failed:",o),process.exit(1)}}async function rt(){let r=he("../../package.json"),t=V();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}U(e),W(e,t),await tt(e)}rt().catch(r=>{console.error("CLI execution failed:",r),process.exit(1)});export{tt as runGeneration};
200
+ `}};async function de(r){let e=await new w(r).generateAll();if(!e.success&&e.errors.length>0)throw e.errors[0]}var he=Je(l);async function tt(r){let t=et(process.cwd(),r);process.chdir(Xe(t));let e=he(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&&k(n.outputFiles.outputDir);try{console.log("Generating multiple outputs..."),await de(n),console.log("Done")}catch(o){console.error("Generation failed:",o),process.exit(1)}}async function rt(){let r=he("../../package.json"),t=V();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}U(e),W(e,t),await tt(e)}rt().catch(r=>{console.error("CLI execution failed:",r),process.exit(1)});export{tt as runGeneration};
211
201
  //# sourceMappingURL=cli.mjs.map