@jbcz/openapi-hooks-codegen
Version:
Library that generates React Hooks based on the OpenAPI specification.
1 lines • 4.06 MB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("os"),t=require("camelcase"),r=require("js-yaml"),n=require("json-schema-ref-parser"),i=require("path"),a=require("fs"),o=require("mkdirp"),s=require("rimraf"),c=require("util"),u=require("http"),l=require("https"),p=require("handlebars/runtime"),d=require("cross-spawn");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var m,g=f(t),y=f(n),h=f(o),v=f(s),D=_(p),b=f(d);function x(e){return null==e?void 0:e.replace(/\\/g,"\\\\")}function S(t){return t?t.replace(/(\*\/)/g,"*_/").replace(/\r?\n(.*)/g,((t,r)=>`${e.EOL} * ${r.trim()}`)):null}function E(e){return null!=e&&""!==e}function C(e){if(e){if(!/^[a-zA-Z_$][\w$]+$/g.test(e))return`'${e}'`}return e}exports.HttpClient=void 0,(m=exports.HttpClient||(exports.HttpClient={})).FETCH="fetch",m.XHR="xhr",m.NODE="node";const T=new Map([["File","File"],["file","File"],["any","any"],["object","any"],["array","any[]"],["boolean","boolean"],["byte","number"],["int","number"],["integer","number"],["float","number"],["double","number"],["short","number"],["long","number"],["number","number"],["char","string"],["date","string"],["date-time","string"],["password","string"],["string","string"],["void","void"],["null","null"]]);function A(e){return e.replace(/^[^a-zA-Z_$]+/g,"").replace(/[^\w$]+/g,"_")}function k(e,t){const r={type:"any",base:"any",template:null,imports:[]},n=function(e){return e.trim().replace(/^#\/components\/schemas\//,"").replace(/^#\/components\/responses\//,"").replace(/^#\/components\/parameters\//,"").replace(/^#\/components\/examples\//,"").replace(/^#\/components\/requestBodies\//,"").replace(/^#\/components\/headers\//,"").replace(/^#\/components\/securitySchemes\//,"").replace(/^#\/components\/links\//,"").replace(/^#\/components\/callbacks\//,"")}(e||"");if(/\[.*\]$/g.test(n)){const e=n.match(/(.*?)\[(.*)\]$/);if(null==e?void 0:e.length){const t=k(A(e[1])),n=k(A(e[2]));"any[]"===t.type?(r.type=`${n.type}[]`,r.base=`${n.type}`,t.imports=[]):n.type?(r.type=`${t.type}<${n.type}>`,r.base=t.type,r.template=n.type):(r.type=t.type,r.base=t.type,r.template=t.type),r.imports.push(...t.imports),r.imports.push(...n.imports)}}else if(i=n,T.has(i)){const e=function(e){return T.get(e)}(n);e&&(r.type=e,r.base=e)}else if(n){const e=A(n);r.type=e,r.base=e,r.imports.push(e)}var i;return r.type===t&&(r.type="T",r.base="T",r.imports=[]),r}function F(e,t,r){var n;const i=[];for(const a in t.properties)if(t.properties.hasOwnProperty(a)){const o=t.properties[a],s=(null===(n=t.required)||void 0===n?void 0:n.includes(a))||void 0!==o.default;if(o.$ref){const e=k(o.$ref);i.push({name:C(a),export:"reference",type:e.type,base:e.base,template:e.template,link:null,description:S(o.description),isDefinition:!1,isReadOnly:!0===o.readOnly,isRequired:s,isNullable:!0===o.nullable,isReference:!0,format:o.format,maximum:o.maximum,exclusiveMaximum:o.exclusiveMaximum,minimum:o.minimum,exclusiveMinimum:o.exclusiveMinimum,multipleOf:o.multipleOf,maxLength:o.maxLength,minLength:o.minLength,maxItems:o.maxItems,minItems:o.minItems,uniqueItems:o.uniqueItems,maxProperties:o.maxProperties,minProperties:o.minProperties,pattern:x(o.pattern),imports:e.imports,enum:[],enums:[],properties:[]})}else{const t=r(e,o);i.push({name:C(a),export:t.export,type:t.type,base:t.base,template:t.template,link:t.link,description:S(o.description),isDefinition:!1,isReadOnly:!0===o.readOnly,isRequired:s,isNullable:!0===o.nullable,isReference:t.isReference,format:o.format,maximum:o.maximum,exclusiveMaximum:o.exclusiveMaximum,minimum:o.minimum,exclusiveMinimum:o.exclusiveMinimum,multipleOf:o.multipleOf,maxLength:o.maxLength,minLength:o.minLength,maxItems:o.maxItems,minItems:o.minItems,uniqueItems:o.uniqueItems,maxProperties:o.maxProperties,minProperties:o.minProperties,pattern:x(o.pattern),imports:t.imports,enum:t.enum,enums:t.enums,properties:t.properties})}}return i}function N(e,t,r,n,i){const a={type:n,imports:[],enums:[],properties:[]};if(r.map((t=>i(e,t))).filter((e=>{const t=e.properties.length,r=e.enums.length;return!("any"===e.type&&!t&&!r)})).forEach((e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),a.properties.push(e)})),t.properties){const r=F(e,t,i);r.forEach((e=>{a.imports.push(...e.imports),a.enums.push(...e.enums)})),a.properties.push({name:"properties",export:"interface",type:"any",base:"any",template:null,link:null,description:"",isDefinition:!1,isReadOnly:!1,isNullable:!1,isRequired:!1,isReference:!1,imports:[],enum:[],enums:[],properties:r})}return a}function P(e,t){var r;if(void 0===e.default)return;if(null===e.default)return"null";switch(e.type||typeof e.default){case"int":case"integer":case"number":return"enum"===(null==t?void 0:t.export)&&(null===(r=t.enum)||void 0===r?void 0:r[e.default])?t.enum[e.default].value:e.default;case"boolean":return JSON.stringify(e.default);case"string":return`'${e.default}'`;case"object":try{return JSON.stringify(e.default,null,4)}catch(e){}}}function w(e,t,r=!1,n=""){var i,a,o;const s={name:n,export:"interface",type:"any",base:"any",template:null,link:null,description:S(t.description),isDefinition:r,isReadOnly:!0===t.readOnly,isNullable:!0===t.nullable,isRequired:void 0!==t.default,isReference:!1,format:t.format,maximum:t.maximum,exclusiveMaximum:t.exclusiveMaximum,minimum:t.minimum,exclusiveMinimum:t.exclusiveMinimum,multipleOf:t.multipleOf,maxLength:t.maxLength,minLength:t.minLength,maxItems:t.maxItems,minItems:t.minItems,uniqueItems:t.uniqueItems,maxProperties:t.maxProperties,minProperties:t.minProperties,pattern:x(t.pattern),imports:[],enum:[],enums:[],properties:[]};if(t.$ref){const e=k(t.$ref);return s.export="reference",s.type=e.type,s.base=e.base,s.template=e.template,s.imports.push(...e.imports),s.default=P(t,s),s.isReference=!0,s}if(t.enum&&"boolean"!==t.type){const e=function(e,t){const r=t["x-enum-varnames"],n=t["x-enum-descriptions"];return e.map(((e,t)=>({name:(null==r?void 0:r[t])||e.name,description:(null==n?void 0:n[t])||e.description,value:e.value,type:e.type})))}((c=t.enum,Array.isArray(c)?c.filter(((e,t,r)=>r.indexOf(e)===t)).filter(E).map((e=>"number"==typeof e?{name:`'_${e}'`,value:String(e),type:"number",description:null}:{name:String(e).replace(/\W+/g,"_").replace(/^(\d+)/g,"_$1").replace(/([a-z])([A-Z]+)/g,"$1_$2").toUpperCase(),value:`'${e}'`,type:"string",description:null})):[]),t);if(e.length)return s.export="enum",s.type="string",s.base="string",s.enum.push(...e),s.default=P(t,s),s}var c;if(("int"===t.type||"integer"===t.type)&&t.description){const e=function(e){if(/^(\w+=[0-9]+)/g.test(e)){const t=e.match(/(\w+=[0-9]+,?)/g);if(t){const e=[];return t.forEach((t=>{const r=t.split("=")[0],n=parseInt(t.split("=")[1].replace(/[^0-9]/g,""));r&&Number.isInteger(n)&&e.push({name:r.replace(/\W+/g,"_").replace(/^(\d+)/g,"_$1").replace(/([a-z])([A-Z]+)/g,"$1_$2").toUpperCase(),value:String(n),type:"number",description:null})})),e.filter(((e,t,r)=>r.map((e=>e.name)).indexOf(e.name)===t))}}return[]}(t.description);if(e.length)return s.export="enum",s.type="number",s.base="number",s.enum.push(...e),s.default=P(t,s),s}if("array"===t.type&&t.items){if(t.items.$ref){const e=k(t.items.$ref);return s.export="array",s.type=e.type,s.base=e.base,s.template=e.template,s.imports.push(...e.imports),s.default=P(t,s),s.isReference=!0,s}{const r=w(e,t.items);return s.export="array",s.type=r.type,s.base=r.base,s.template=r.template,s.link=r,s.imports.push(...r.imports),s.isReference=r.isReference,s.default=P(t,s),s}}if("object"===t.type&&"object"==typeof t.additionalProperties){if(t.additionalProperties.$ref){const e=k(t.additionalProperties.$ref);return s.export="dictionary",s.type=e.type,s.base=e.base,s.template=e.template,s.imports.push(...e.imports),s.default=P(t,s),s.isReference=!0,s}{const r=w(e,t.additionalProperties);return s.export="dictionary",s.type=r.type,s.base=r.base,s.template=r.template,s.link=r,s.imports.push(...r.imports),s.default=P(t,s),s.isReference=r.isReference,s}}if(null===(i=t.oneOf)||void 0===i?void 0:i.length){const r=N(e,t,t.oneOf,"one-of",w);return s.export=r.type,s.imports.push(...r.imports),s.properties.push(...r.properties),s.enums.push(...r.enums),s}if(null===(a=t.anyOf)||void 0===a?void 0:a.length){const r=N(e,t,t.anyOf,"any-of",w);return s.export=r.type,s.imports.push(...r.imports),s.properties.push(...r.properties),s.enums.push(...r.enums),s}if(null===(o=t.allOf)||void 0===o?void 0:o.length){const r=N(e,t,t.allOf,"all-of",w);return s.export=r.type,s.imports.push(...r.imports),s.properties.push(...r.properties),s.enums.push(...r.enums),s}if("object"===t.type){if(s.export="interface",s.type="any",s.base="any",s.default=P(t,s),t.properties){F(e,t,w).forEach((e=>{s.imports.push(...e.imports),s.enums.push(...e.enums),s.properties.push(e),"enum"===e.export&&s.enums.push(e)}))}return s}if(t.type){const e=k(t.type);return s.export="generic",s.type=e.type,s.base=e.base,s.template=e.template,s.imports.push(...e.imports),s.default=P(t,s),s}return s}function O(e,t){const r=[];if(e.components){for(const t in e.components.schemas)if(e.components.schemas.hasOwnProperty(t)){const n=e.components.schemas[t],i=k(t),a=w(e,n,!0,i.base);r.push(a)}t&&e.components.responses&&Object.entries(e.components.responses).forEach((([t,n])=>{n.content&&Object.entries(n.content).forEach((([n,i])=>{const a=((e,t)=>`${e}${g.default(t.replace("/","-"),{pascalCase:!0})}Response`)(t,n),o=i.schema;if(!o)return;const s=k(a),c=w(e,o,!0,s.base);i.schema={$ref:`#/components/schemas/${a}`},r.push(c)}))}))}return r}const I=/^(arguments|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g;function M(e){const t=e.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w\-]+/g,"-").trim();return g.default(t).replace(I,"_$1")}function L(e,t){if(t.$ref){const r=t.$ref.replace(/^#/g,"").split("/").filter((e=>e));let n=e;return r.forEach((e=>{if(!n.hasOwnProperty(e))throw new Error(`Could not find reference: "${t.$ref}"`);n=n[e]})),n}return t}function R(e,t){const r=e.isRequired&&void 0===e.default,n=t.isRequired&&void 0===t.default;return r&&!n?-1:!r&&n?1:0}function B(e,t){const r={imports:[],parameters:[],parametersPath:[],parametersQuery:[],parametersForm:[],parametersCookie:[],parametersHeader:[],parametersBody:null};return t.forEach((t=>{const n=L(e,t),i=function(e,t){const r={in:t.in,prop:t.name,export:"interface",name:M(t.name),type:"any",base:"any",template:null,link:null,description:S(t.description),isDefinition:!1,isReadOnly:!1,isRequired:!0===t.required,isNullable:!0===t.nullable,isReference:!1,imports:[],enum:[],enums:[],properties:[],mediaType:null};if(t.$ref){const e=k(t.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.isReference=!0,r}if(t.schema){if(t.schema.$ref){const e=k(t.schema.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.isReference=!0,r.default=P(t.schema),r}{const n=w(e,t.schema);return r.export=n.export,r.type=n.type,r.base=n.base,r.template=n.template,r.link=n.link,r.isReadOnly=n.isReadOnly,r.isRequired=r.isRequired||n.isRequired,r.isNullable=r.isNullable||n.isNullable,r.format=n.format,r.maximum=n.maximum,r.exclusiveMaximum=n.exclusiveMaximum,r.minimum=n.minimum,r.exclusiveMinimum=n.exclusiveMinimum,r.multipleOf=n.multipleOf,r.maxLength=n.maxLength,r.minLength=n.minLength,r.maxItems=n.maxItems,r.minItems=n.minItems,r.uniqueItems=n.uniqueItems,r.maxProperties=n.maxProperties,r.minProperties=n.minProperties,r.pattern=x(n.pattern),r.default=n.default,r.imports.push(...n.imports),r.isReference=n.isReference,r.enum.push(...n.enum),r.enums.push(...n.enums),r.properties.push(...n.properties),r}}return r}(e,n);if("api-version"!==i.prop)switch(n.in){case"path":r.parametersPath.push(i),r.parameters.push(i),r.imports.push(...i.imports);break;case"query":r.parametersQuery.push(i),r.parameters.push(i),r.imports.push(...i.imports);break;case"formData":r.parametersForm.push(i),r.parameters.push(i),r.imports.push(...i.imports);break;case"cookie":r.parametersCookie.push(i),r.parameters.push(i),r.imports.push(...i.imports);break;case"header":r.parametersHeader.push(i),r.parameters.push(i),r.imports.push(...i.imports)}})),r.parameters=r.parameters.sort(R),r.parametersPath=r.parametersPath.sort(R),r.parametersQuery=r.parametersQuery.sort(R),r.parametersForm=r.parametersForm.sort(R),r.parametersCookie=r.parametersCookie.sort(R),r.parametersHeader=r.parametersHeader.sort(R),r}function j(e,t){return t["application/json-patch+json"]&&t["application/json-patch+json"].schema||t["application/json"]&&t["application/json"].schema||t["text/json"]&&t["text/json"].schema||t["text/plain"]&&t["text/plain"].schema||t["multipart/mixed"]&&t["multipart/mixed"].schema||t["multipart/related"]&&t["multipart/related"].schema||t["multipart/batch"]&&t["multipart/batch"].schema||null}function J(e,t){const r={in:"body",prop:"body",export:"interface",name:"requestBody",type:"any",base:"any",template:null,link:null,description:S(t.description),default:void 0,isDefinition:!1,isReadOnly:!1,isRequired:!0===t.required,isNullable:!0===t.nullable,isReference:!1,imports:[],enum:[],enums:[],properties:[],mediaType:null};if(t.content){const i=j(0,t.content);if(i){if(r.mediaType=(n=t.content,Object.keys(n).find((e=>["application/json-patch+json","application/json","text/json","text/plain","multipart/mixed","multipart/related","multipart/batch"].includes(e)))||null),null==i?void 0:i.$ref){const e=k(i.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.isReference=!0,r}{const t=w(e,i);return r.export=t.export,r.type=t.type,r.base=t.base,r.template=t.template,r.link=t.link,r.isReadOnly=t.isReadOnly,r.isRequired=r.isRequired||t.isRequired,r.isNullable=r.isNullable||t.isNullable,r.format=t.format,r.maximum=t.maximum,r.exclusiveMaximum=t.exclusiveMaximum,r.minimum=t.minimum,r.exclusiveMinimum=t.exclusiveMinimum,r.multipleOf=t.multipleOf,r.maxLength=t.maxLength,r.minLength=t.minLength,r.maxItems=t.maxItems,r.minItems=t.minItems,r.uniqueItems=t.uniqueItems,r.maxProperties=t.maxProperties,r.minProperties=t.minProperties,r.pattern=x(t.pattern),r.imports.push(...t.imports),r.isReference=t.isReference,r.enum.push(...t.enum),r.enums.push(...t.enums),r.properties.push(...t.properties),r}}}var n;return r}function K(e,t,r,n,i){const a={in:"response",name:"",code:r,description:S(t.description),export:"generic",type:"any",base:"any",template:null,link:null,isDefault:n,isAny:i,isDefinition:!1,isReadOnly:!1,isRequired:!1,isNullable:!1,isReference:!1,imports:[],enum:[],enums:[],properties:[]};if(t.content){const r=j(0,t.content);if(r){if(null==r?void 0:r.$ref){const e=k(r.$ref);return a.export="reference",a.type=e.type,a.base=e.base,a.template=e.template,a.imports.push(...e.imports),a.isReference=!0,a}{const t=w(e,r);return a.export=t.export,a.type=t.type,a.base=t.base,a.template=t.template,a.link=t.link,a.isReadOnly=t.isReadOnly,a.isRequired=t.isRequired,a.isNullable=t.isNullable,a.format=t.format,a.maximum=t.maximum,a.exclusiveMaximum=t.exclusiveMaximum,a.minimum=t.minimum,a.exclusiveMinimum=t.exclusiveMinimum,a.multipleOf=t.multipleOf,a.maxLength=t.maxLength,a.minLength=t.minLength,a.maxItems=t.maxItems,a.minItems=t.minItems,a.uniqueItems=t.uniqueItems,a.maxProperties=t.maxProperties,a.minProperties=t.minProperties,a.pattern=x(t.pattern),a.imports.push(...t.imports),a.isReference=t.isReference,a.enum.push(...t.enum),a.enums.push(...t.enums),a.properties.push(...t.properties),a}}}if(t.headers)for(const e in t.headers)if(t.headers.hasOwnProperty(e))return a.in="header",a.name=e,a.type="string",a.base="string",a;return a}function z(e){if("default"===e)return 200;if(/[0-9]+/g.test(e)){const t=parseInt(e);if(Number.isInteger(t))return Math.abs(t)}return null}function U(e,t){const r=e.type===t.type&&e.base===t.base&&e.template===t.template;return r&&e.link&&t.link?U(e.link,t.link):r}function q(e){const t=[];return e.forEach((e=>{const{code:r}=e;r&&204!==r&&r>=200&&r<300&&t.push(e)})),t.length||t.push({in:"response",name:"",code:200,description:"",export:"generic",type:"void",base:"void",template:null,link:null,isDefault:!1,isAny:!1,isDefinition:!1,isReadOnly:!1,isRequired:!1,isNullable:!1,isReference:!1,imports:[],enum:[],enums:[],properties:[]}),t.filter(((e,t,r)=>r.findIndex((t=>U(t,e)))===t))}const V=/\${(.+?)}/gm;function W(e,t,r,n,i){var a;const o=function(e){const t=e.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w\-]+/g,"-").trim(),r=g.default(t,{pascalCase:!0});return r&&!r.endsWith("Service")?`${r}Service`:r}((null===(a=n.tags)||void 0===a?void 0:a[0])||"Service"),s=`${r}${o}`,c=function(e){const t=e.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w\-]+/g,"-").trim();return g.default(t)}(n.operationId||s),u=function(e){return e.replace(/\{(.*?)\}/g,((e,t)=>`\${${M(t)}}`)).replace("${apiVersion}","${OpenAPI.VERSION}")}(t),l={service:o,name:c,hookName:`use${c[0].toUpperCase()}${c.slice(1)}`,summary:S(n.summary),description:S(n.description),deprecated:!0===n.deprecated,method:r.toUpperCase(),path:u,pathPattern:u.replaceAll(":","::").replaceAll(V,":$1"),pathParameters:[...u.matchAll(V)].map((e=>e[1])),parameters:[...i.parameters],parametersPath:[...i.parametersPath],parametersQuery:[...i.parametersQuery],parametersForm:[...i.parametersForm],parametersHeader:[...i.parametersHeader],parametersCookie:[...i.parametersCookie],parametersBody:i.parametersBody,imports:[],errors:[],results:[],okResults:[],errorResults:[],responseHeader:null};if(n.parameters){const t=B(e,n.parameters);l.imports.push(...t.imports),l.parameters.push(...t.parameters),l.parametersPath.push(...t.parametersPath),l.parametersQuery.push(...t.parametersQuery),l.parametersForm.push(...t.parametersForm),l.parametersHeader.push(...t.parametersHeader),l.parametersCookie.push(...t.parametersCookie),l.parametersBody=t.parametersBody}if(n.requestBody){const t=J(e,L(e,n.requestBody));l.imports.push(...t.imports),l.parameters.push(t),l.parameters=l.parameters.sort(R),l.parametersBody=t}if(n.responses){const t=function(e,t){const r=[];for(const n in t)if(t.hasOwnProperty(n)){const i=t[n],a=L(e,i),o=z(n),s="default"===n,c=!i.hasOwnProperty("content")&&!i.hasOwnProperty("$ref");if(o){const t=K(e,a,o,s,c);r.push(t)}}return r.sort(((e,t)=>e.code<t.code?-1:e.code>t.code?1:0))}(e,n.responses),r=q(t);l.errors=function(e){return e.filter((e=>e.code>=300&&e.description)).map((e=>{return{code:e.code,description:(t=e.description,t.replace(/([^\\])`/g,"$1\\`").replace(/(\*\/)/g,"*_/"))};var t}))}(t),l.responseHeader=function(e){const t=e.find((e=>"header"===e.in));return t?t.name:null}(r),r.forEach((e=>{l.results.push(e),l.imports.push(...e.imports),200!==e.code||e.isDefault?l.errorResults.push(e):l.okResults.push(e)}))}return l}function H(e,t){return{version:function(e="1.0"){return e.replace(/^v/gi,"")}(e.info.version),server:function(e){var t;const r=null===(t=e.servers)||void 0===t?void 0:t[0],n=(null==r?void 0:r.variables)||{};let i=(null==r?void 0:r.url)||"";for(const e in n)n.hasOwnProperty(e)&&(i=i.replace(`{${e}}`,n[e].default));return i}(e),models:O(e,t),services:function(e){const t=new Map;for(const r in e.paths)if(e.paths.hasOwnProperty(r)){const n=e.paths[r],i=B(e,n.parameters||[]);for(const a in n)if(n.hasOwnProperty(a))switch(a){case"get":case"put":case"post":case"delete":case"options":case"head":case"patch":const o=W(e,r,a,n[a],i),s=t.get(o.service)||{name:o.service,operations:[],imports:[]};s.operations.push(o),s.imports.push(...o.imports),t.set(o.service,s)}}return Array.from(t.values())}(e)}}const $=c.promisify(a.readFile),G=c.promisify(a.writeFile),Y=c.promisify(a.copyFile),X=c.promisify(a.exists),Q=h.default,Z=e=>new Promise(((t,r)=>{v.default(e,(e=>{e?r(e):t()}))}));async function ee(e){return e.startsWith("https://")?await async function(e){return new Promise(((t,r)=>{l.get(e,(n=>{let i="";n.on("data",(e=>{i+=e})),n.on("end",(()=>{t(i)})),n.on("error",(()=>{r(`Could not read OpenApi spec: "${e}"`)}))}))}))}(e):e.startsWith("http://")?await async function(e){return new Promise(((t,r)=>{u.get(e,(n=>{let i="";n.on("data",(e=>{i+=e})),n.on("end",(()=>{t(i)})),n.on("error",(()=>{r(`Could not read OpenApi spec: "${e}"`)}))}))}))}(e):await async function(e){const t=i.resolve(process.cwd(),e);if(await X(t))try{return(await $(t,"utf8")).toString()}catch(e){throw new Error(`Could not read OpenApi spec: "${t}"`)}throw new Error(`Could not find OpenApi spec: "${t}"`)}(e)}var te;function re(e){return e.enum.filter(((e,t,r)=>r.findIndex((t=>t.name===e.name))===t))}function ne(e){return e.enums.filter(((e,t,r)=>r.findIndex((t=>t.name===e.name))===t))}function ie(e,t){const r=e.toLowerCase(),n=t.toLowerCase();return r.localeCompare(n,"en")}function ae(e,t,r){return r.indexOf(e)===t}function oe(e){return e.imports.filter(ae).sort(ie).filter((t=>e.name!==t))}function se(e,t){const r=[];return e.map(t).forEach((e=>{r.push(...e)})),r}function ce(e){const t=Object.assign({},e);return t.operations=function(e){const t=new Map;return e.operations.map((e=>{const r=Object.assign({},e);r.imports.push(...se(r.parameters,(e=>e.imports))),r.imports.push(...se(r.results,(e=>e.imports)));const n=r.name,i=t.get(n)||0;return i>0&&(r.name=`${n}${i}`),t.set(n,i+1),r}))}(t),t.operations.forEach((e=>{t.imports.push(...e.imports)})),t.imports=function(e){return e.imports.filter(ae).sort(ie).filter((t=>e.name!==t))}(t),t}function ue(e){return Object.assign(Object.assign({},e),{models:e.models.map((e=>function(e){return Object.assign(Object.assign({},e),{imports:oe(e),enums:ne(e),enum:re(e)})}(e))),services:e.services.map((e=>ce(e)))})}!function(e){e[e.V2=2]="V2",e[e.V3=3]="V3"}(te||(te={}));var le={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){var a,o=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(o(n,"header"),t,{name:"header",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\r\nimport type { ApiResult } from './ApiResult';\r\n\r\nexport class ApiError<T, P extends boolean> extends Error {\r\n public readonly url: string;\r\n public readonly status: number;\r\n public readonly statusText: string;\r\n public readonly body: any;\r\n\r\n constructor(response: ApiResult<T, P>, message: string) {\r\n super(message);\r\n\r\n this.url = response.url;\r\n this.status = response.status;\r\n this.statusText = response.statusText;\r\n this.body = response.body;\r\n }\r\n}"},usePartial:!0,useData:!0},pe={1:function(e,t,r,n,i){return"import type { ValidateFunction } from 'ajv';\r\n"},compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){var a,o=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(o(n,"header"),t,{name:"header",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\r\n"+(null!=(a=o(r,"if").call(null!=t?t:e.nullContext||{},o(t,"runtimeValidation"),{name:"if",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i,loc:{start:{line:3,column:0},end:{line:5,column:7}}}))?a:"")+"\r\nexport interface BaseApiRequestOptions {\r\n readonly cookies?: Record<string, any>;\r\n readonly headers?: Record<string, any>;\r\n readonly query?: Record<string, any>;\r\n readonly formData?: Record<string, any>;\r\n readonly body?: any;\r\n readonly mediaType?: string;\r\n readonly responseHeader?: string;\r\n readonly errors?: Record<number, string>;\r\n readonly schemas?: Record<string, any>;\r\n}\r\n\r\nexport interface ApiRequestOptions extends BaseApiRequestOptions {\r\n readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH';\r\n readonly path: string;\r\n}"},usePartial:!0,useData:!0},de={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){var a,o=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(o(n,"header"),t,{name:"header",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\nexport interface ApiResult<T = unknown, P extends boolean = false> {\n readonly url: string;\n readonly ok: P;\n readonly status: number;\n readonly statusText: string;\n readonly body: T;\n}"},usePartial:!0,useData:!0},fe={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"async function getHeaders(options: ApiRequestOptions): Promise<Headers> {\r\n const token = await resolve(options, OpenAPI.TOKEN);\r\n const username = await resolve(options, OpenAPI.USERNAME);\r\n const password = await resolve(options, OpenAPI.PASSWORD);\r\n const defaultHeaders = await resolve(options, OpenAPI.HEADERS);\r\n\r\n const headers = new Headers({\r\n Accept: 'application/json',\r\n ...defaultHeaders,\r\n ...options.headers,\r\n });\r\n\r\n if (isStringWithValue(token)) {\r\n headers.append('Authorization', `Bearer ${token}`);\r\n }\r\n\r\n if (isStringWithValue(username) && isStringWithValue(password)) {\r\n const credentials = btoa(`${username}:${password}`);\r\n headers.append('Authorization', `Basic ${credentials}`);\r\n }\r\n\r\n if (options.body) {\r\n if (options.mediaType) {\r\n headers.append('Content-Type', options.mediaType);\r\n } else if (isBlob(options.body)) {\r\n headers.append('Content-Type', options.body.type || 'application/octet-stream');\r\n } else if (isString(options.body)) {\r\n headers.append('Content-Type', 'text/plain');\r\n } else {\r\n headers.append('Content-Type', 'application/json');\r\n }\r\n }\r\n return headers;\r\n}"},useData:!0},_e={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"type BodyInit = Blob | FormData | URLSearchParams | string;\n\nfunction getRequestBody(options: ApiRequestOptions): BodyInit | undefined {\n if (options.formData) {\n return getFormData(options.formData);\n }\n if (options.body) {\n if (options.mediaType?.includes('/json')) {\n return JSON.stringify(options.body)\n } else if (isString(options.body) || isBlob(options.body)) {\n return options.body;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n}"},useData:!0},me={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"async function getResponseBody(response: Response): Promise<any> {\r\n try {\r\n const contentType = response.headers.get('Content-Type');\r\n if (contentType) {\r\n const isJSON = contentType.toLowerCase().startsWith('application/json');\r\n if (isJSON) {\r\n return await response.json();\r\n } else {\r\n return await response.text();\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n}"},useData:!0},ge={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function getResponseHeader(response: Response, responseHeader?: string): string | null {\r\n if (responseHeader) {\r\n const content = response.headers.get(responseHeader);\r\n if (isString(content)) {\r\n return content;\r\n }\r\n }\r\n return null;\r\n}"},useData:!0},ye={1:function(e,t,r,n,i){return"import type { ValidateFunction } from 'ajv';\n// @ts-ignore\nimport { default as betterAjvErrors } from 'better-ajv-errors/lib/modern';\n"},3:function(e,t,r,n,i){return"export * from './requestReactHook';\n"},5:function(e,t,r,n,i){var a,o=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(o(n,"functions/validateResponse"),t,{name:"functions/validateResponse",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:""},7:function(e,t,r,n,i){return" if (mergedOptions.schemas) {\n responseValid = validateResponse(url, responseBody, response.statusText, mergedOptions.schemas);\n }\n"},compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){var a,o=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(s(n,"header"),t,{name:"header",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n"+(null!=(a=s(r,"if").call(o,s(t,"runtimeValidation"),{name:"if",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i,loc:{start:{line:3,column:0},end:{line:7,column:7}}}))?a:"")+"\nimport { ApiError } from './ApiError';\nimport type { BaseApiRequestOptions, ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { OpenAPI } from './OpenAPI';\n\n"+(null!=(a=s(r,"equals").call(o,s(t,"variation"),"react-hook",{name:"equals",hash:{},fn:e.program(3,i,0),inverse:e.noop,data:i,loc:{start:{line:14,column:0},end:{line:16,column:11}}}))?a:"")+"\n"+(null!=(a=e.invokePartial(s(n,"functions/isDefined"),t,{name:"functions/isDefined",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"functions/isString"),t,{name:"functions/isString",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"functions/isStringWithValue"),t,{name:"functions/isStringWithValue",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"functions/isBlob"),t,{name:"functions/isBlob",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"functions/getQueryString"),t,{name:"functions/getQueryString",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"functions/getUrl"),t,{name:"functions/getUrl",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"functions/getFormData"),t,{name:"functions/getFormData",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"functions/resolve"),t,{name:"functions/resolve",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"fetch/getHeaders"),t,{name:"fetch/getHeaders",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"fetch/getRequestBody"),t,{name:"fetch/getRequestBody",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"fetch/sendRequest"),t,{name:"fetch/sendRequest",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"fetch/getResponseHeader"),t,{name:"fetch/getResponseHeader",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"fetch/getResponseBody"),t,{name:"fetch/getResponseBody",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(s(n,"functions/catchErrors"),t,{name:"functions/catchErrors",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n"+(null!=(a=s(r,"if").call(o,s(t,"runtimeValidation"),{name:"if",hash:{},fn:e.program(5,i,0),inverse:e.noop,data:i,loc:{start:{line:59,column:0},end:{line:61,column:7}}}))?a:"")+"\n\nconst poorClone = <T>(x: T) => JSON.parse(JSON.stringify(x)) as T;\n\n/**\n * Request using fetch client\n * @param options The request options from the the service\n * @returns ApiResult\n * @throws ApiError\n */\nexport async function request<DataType, ErrorType>(\n options: ApiRequestOptions,\n globalOptions: BaseApiRequestOptions\n): Promise<ApiResult<DataType, true> | ApiResult<ErrorType | null, false>> {\n const mergedOptions = {} as unknown as ApiRequestOptions;\n Object.assign(mergedOptions, poorClone(globalOptions));\n Object.assign(mergedOptions, poorClone(options));\n\n const url = getUrl(mergedOptions);\n const response = await sendRequest(mergedOptions, url);\n const responseBody = await getResponseBody(response);\n const responseHeader = getResponseHeader(response, mergedOptions.responseHeader);\n\n let responseValid = true;\n"+(null!=(a=s(r,"if").call(o,s(t,"runtimeValidation"),{name:"if",hash:{},fn:e.program(7,i,0),inverse:e.noop,data:i,loc:{start:{line:86,column:4},end:{line:90,column:11}}}))?a:"")+"\n if (!responseValid) {\n return {\n url,\n ok: false,\n status: -1,\n statusText: 'Client side validation failed',\n body: null,\n }\n }\n\n return {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader || responseBody,\n };\n}"},usePartial:!0,useData:!0},he={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"async function sendRequest(options: ApiRequestOptions, url: string): Promise<Response> {\r\n const request: RequestInit = {\r\n method: options.method,\r\n headers: await getHeaders(options),\r\n body: getRequestBody(options),\r\n };\r\n if (OpenAPI.WITH_CREDENTIALS) {\r\n request.credentials = 'include';\r\n }\r\n return await fetch(url, request);\r\n}"},useData:!0},ve={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function catchErrors(options: ApiRequestOptions, result: ApiResult): void {\r\n const errors: Record<number, string> = {\r\n 400: 'Bad Request',\r\n 401: 'Unauthorized',\r\n 403: 'Forbidden',\r\n 404: 'Not Found',\r\n 500: 'Internal Server Error',\r\n 502: 'Bad Gateway',\r\n 503: 'Service Unavailable',\r\n ...options.errors,\r\n }\r\n\r\n const error = errors[result.status];\r\n if (error) {\r\n throw new ApiError(result, error);\r\n }\r\n\r\n if (!result.ok) {\r\n throw new ApiError(result, 'Generic Error');\r\n }\r\n}"},useData:!0},De={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function getFormData(params: Record<string, any>): FormData {\r\n const formData = new FormData();\r\n Object.keys(params).forEach(key => {\r\n const value = params[key];\r\n if (isDefined(value)) {\r\n formData.append(key, value);\r\n }\r\n });\r\n return formData;\r\n}"},useData:!0},be={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function getQueryString(params: Record<string, any>): string {\r\n const qs: string[] = [];\r\n Object.keys(params).forEach(key => {\r\n const value = params[key];\r\n if (isDefined(value)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(value => {\r\n qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\r\n });\r\n } else {\r\n qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\r\n }\r\n }\r\n });\r\n if (qs.length > 0) {\r\n return `?${qs.join('&')}`;\r\n }\r\n return '';\r\n}"},useData:!0},xe={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function resolveUrl(...paths: string[]){\r\n if (!paths.length) {\r\n throw new TypeError('Less than one path');\r\n }\r\n\r\n let currentUrl: URL | null = null;\r\n const __location = (globalThis as any).location;\r\n const baseUrl = __location ? __location.href : OpenAPI.BASE;\r\n\r\n for (let i = 0; i < paths.length; i++) {\r\n currentUrl = new URL(paths[i], currentUrl ? currentUrl.href : baseUrl);\r\n }\r\n\r\n return currentUrl!.href\r\n};\r\n\r\nfunction getUrl(options: ApiRequestOptions): string {\r\n const url = `${OpenAPI.BASE}${options.path}`;\r\n\r\n if (options.query) {\r\n return `${url}${getQueryString(options.query)}`;\r\n }\r\n return url;\r\n}"},useData:!0},Se={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function isBinary(value: any): value is Buffer | ArrayBuffer | ArrayBufferView {\r\n const isBuffer = Buffer.isBuffer(value);\r\n const isArrayBuffer = types.isArrayBuffer(value);\r\n const isArrayBufferView = types.isArrayBufferView(value);\r\n return isBuffer || isArrayBuffer || isArrayBufferView;\r\n}"},useData:!0},Ee={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function isBlob(value: any): value is Blob {\r\n return value instanceof Blob;\r\n}"},useData:!0},Ce={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function isDefined<T>(value: T | null | undefined): value is Exclude<T, null | undefined> {\r\n return value !== undefined && value !== null;\r\n}"},useData:!0},Te={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function isString(value: any): value is string {\r\n return typeof value === 'string';\r\n}"},useData:!0},Ae={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function isStringWithValue(value: any): value is string {\r\n return isString(value) && value !== '';\r\n}"},useData:!0},ke={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function isSuccess(status: number): boolean {\r\n return status >= 200 && status < 300;\r\n}"},useData:!0},Fe={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;\r\n\r\nasync function resolve<T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> {\r\n if (typeof resolver === 'function') {\r\n return (resolver as Resolver<T>)(options);\r\n }\r\n return resolver;\r\n}"},useData:!0},Ne={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function validateResponse(\n url: string,\n responseBody: any,\n statusText: string,\n schemas: Record<string, ValidateFunction>\n): boolean {\n const validateFunction = schemas[statusText] || schemas['default'];\n\n if (!validateFunction) return true;\n\n const valid = validateFunction(responseBody);\n\n if (!valid) {\n console.error(validateFunction.schema, responseBody, validateFunction.errors);\n return false;\n }\n\n return true;\n}"},useData:!0},Pe={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"async function getHeaders(options: ApiRequestOptions): Promise<Headers> {\r\n const token = await resolve(options, OpenAPI.TOKEN);\r\n const username = await resolve(options, OpenAPI.USERNAME);\r\n const password = await resolve(options, OpenAPI.PASSWORD);\r\n const defaultHeaders = await resolve(options, OpenAPI.HEADERS);\r\n\r\n const headers = new Headers({\r\n Accept: 'application/json',\r\n ...defaultHeaders,\r\n ...options.headers,\r\n });\r\n\r\n if (isStringWithValue(token)) {\r\n headers.append('Authorization', `Bearer ${token}`);\r\n }\r\n\r\n if (isStringWithValue(username) && isStringWithValue(password)) {\r\n const credentials = Buffer.from(`${username}:${password}`).toString('base64');\r\n headers.append('Authorization', `Basic ${credentials}`);\r\n }\r\n\r\n if (options.body) {\r\n if (options.mediaType) {\r\n headers.append('Content-Type', options.mediaType);\r\n } else if (isBinary(options.body)) {\r\n headers.append('Content-Type', 'application/octet-stream');\r\n } else if (isString(options.body)) {\r\n headers.append('Content-Type', 'text/plain');\r\n } else {\r\n headers.append('Content-Type', 'application/json');\r\n }\r\n }\r\n return headers;\r\n}"},useData:!0},we={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function getRequestBody(options: ApiRequestOptions): BodyInit | undefined {\r\n if (options.formData) {\r\n return getFormData(options.formData);\r\n }\r\n if (options.body) {\r\n if (options.mediaType?.includes('/json')) {\r\n return JSON.stringify(options.body)\r\n } else if (isString(options.body) || isBinary(options.body)) {\r\n return options.body;\r\n } else {\r\n return JSON.stringify(options.body);\r\n }\r\n }\r\n return undefined;\r\n}"},useData:!0},Oe={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"async function getResponseBody(response: Response): Promise<any> {\r\n try {\r\n const contentType = response.headers.get('Content-Type');\r\n if (contentType) {\r\n const isJSON = contentType.toLowerCase().startsWith('application/json');\r\n if (isJSON) {\r\n return await response.json();\r\n } else {\r\n return await response.text();\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n}"},useData:!0},Ie={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"function getResponseHeader(response: Response, responseHeader?: string): string | null {\r\n if (responseHeader) {\r\n const content = response.headers.get(responseHeader);\r\n if (isString(content)) {\r\n return content;\r\n }\r\n }\r\n return null;\r\n}"},useData:!0},Me={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){var a,o=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(o(n,"header"),t,{name:"header",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\nimport FormData from 'form-data';\nimport fetch, { BodyInit, Headers, RequestInit, Response } from 'node-fetch';\nimport { types } from 'util';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { OpenAPI } from './OpenAPI';\n\n"+(null!=(a=e.invokePartial(o(n,"functions/isDefined"),t,{name:"functions/isDefined",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"functions/isString"),t,{name:"functions/isString",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"functions/isStringWithValue"),t,{name:"functions/isStringWithValue",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"functions/isBinary"),t,{name:"functions/isBinary",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"functions/getQueryString"),t,{name:"functions/getQueryString",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"functions/getUrl"),t,{name:"functions/getUrl",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"functions/getFormData"),t,{name:"functions/getFormData",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"functions/resolve"),t,{name:"functions/resolve",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"node/getHeaders"),t,{name:"node/getHeaders",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"node/getRequestBody"),t,{name:"node/getRequestBody",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"node/sendRequest"),t,{name:"node/sendRequest",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"node/getResponseHeader"),t,{name:"node/getResponseHeader",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"node/getResponseBody"),t,{name:"node/getResponseBody",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(o(n,"functions/catchErrors"),t,{name:"functions/catchErrors",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\n\n/**\n * Request using node-fetch client\n * @param options The request options from the the service\n * @returns ApiResult\n * @throws ApiError\n */\nexport async function request(options: ApiRequestOptions): Promise<ApiResult> {\n const url = getUrl(options);\n const response = await sendRequest(options, url);\n const responseBody = await getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader || responseBody,\n };\n\n catchErrors(options, result);\n return result;\n}"},usePartial:!0,useData:!0},Le={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){return"async function sendRequest(options: ApiRequestOptions, url: string): Promise<Response> {\n const request: RequestInit = {\n method: options.method,\n headers: await getHeaders(options),\n body: getRequestBody(options),\n };\n return await fetch(url, request);\n}"},useData:!0},Re={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){var a,o=e.strict,s=e.lambda,c=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(c(n,"header"),t,{name:"header",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\r\nimport type { ApiRequestOptions } from './ApiRequestOptions';\r\n\r\ntype Resolver<T> = (options: ApiRequestOptions) => Promise<T>;\r\ntype Headers = Record<string, string>;\r\n\r\ntype Config = {\r\n BASE: string;\r\n VERSION: string;\r\n WITH_CREDENTIALS: boolean;\r\n TOKEN?: string | Resolver<string>;\r\n USERNAME?: string | Resolver<string>;\r\n PASSWORD?: string | Resolver<string>;\r\n HEADERS?: Headers | Resolver<Headers>;\r\n}\r\n\r\nexport const OpenAPI: Config = {\r\n BASE: '"+(null!=(a=s(o(t,"server",{start:{line:19,column:14},end:{line:19,column:20}}),t))?a:"")+"',\r\n VERSION: '"+(null!=(a=s(o(t,"version",{start:{line:20,column:17},end:{line:20,column:24}}),t))?a:"")+"',\r\n WITH_CREDENTIALS: false,\r\n TOKEN: undefined,\r\n USERNAME: undefined,\r\n PASSWORD: undefined,\r\n HEADERS: undefined,\r\n};"},usePartial:!0,useData:!0},Be={1:function(e,t,r,n,i){var a,o=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(o(n,"fetch/request"),t,{name:"fetch/request",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:""},3:function(e,t,r,n,i){var a,o=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(o(n,"xhr/request"),t,{name:"xhr/request",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:""},5:function(e,t,r,n,i){var a,o=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(o(n,"node/request"),t,{name:"node/request",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:""},compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){var a,o=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=s(r,"equals").call(o,s(s(i,"root"),"httpClient"),"fetch",{name:"equals",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i,loc:{start:{line:1,column:0},end:{line:1,column:67}}}))?a:"")+(null!=(a=s(r,"equals").call(o,s(s(i,"root"),"httpClient"),"xhr",{name:"equals",hash:{},fn:e.program(3,i,0),inverse:e.noop,data:i,loc:{start:{line:2,column:0},end:{line:2,column:63}}}))?a:"")+(null!=(a=s(r,"equals").call(o,s(s(i,"root"),"httpClient"),"node",{name:"equals",hash:{},fn:e.program(5,i,0),inverse:e.noop,data:i,loc:{start:{line:3,column:0},end:{line:3,column:65}}}))?a:"")},usePartial:!0,useData:!0},je={compiler:[8,">= 4.3.0"],main:function(e,t,r,n,i){var a,o=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(o(n,"header"),t,{name:"header",data:i,helpers:r,partials:n,decorators:e.decorators}))?a:"")+"\nimport { atom, SetStateAction } from 'jotai';\nimport type { ApiResult } from './ApiResult';\n\nimport type { BaseApiRequestOptions } from './ApiRequestOptions';\n\nexport const globalOptionsAtom = atom<BaseApiRequestOptions>({});\n\nexport enum RequestStatus {\n NotReady = 'NotReady',\n Loading = 'Loading',\n Success = 'Success',\n Error = 'Error',\n}\n\nexport interface INotReadyState<DataType = void, ErrorType = void> {\n status: RequestStatus.NotReady;\n error: ErrorType | null;\n data: DataType | null;\n}\n\nexport interface ILoadingState<DataType = void, ErrorType = void> {\n status: RequestStatus.Loading;\n error: ErrorType | null;\n data: DataType | null;\n}\n\nexport interface ISuccessState<DataType = void> {\n status: RequestStatus.Success;\n error: null;\n data: DataType;\n}\n\nexport interface IFailedState<ErrorType = void> {\n status: RequestStatus.Error;\n error: ErrorType | null;\n data: null\n}\n\nexport type ResultType<T> = T extends () => readonly [infer R, any] ? R : never\n\nexport type ResultState<DataType = void, ErrorType = void> =\n | INotReadyState<DataType, ErrorType>\n | ILoadingState<DataType, ErrorType>\n | ISuccessState<DataType>\n | IFailedState<ErrorType>\n\nexport interface IActionCallback<DataType = void, ErrorType = void> {\n (\n atom: ResultState<DataType, ErrorType>,\n set: (update: SetStateAction<ResultState<DataType, ErrorType>>) =>