@hey-api/openapi-ts
Version:
🚀 The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more.
11 lines • 17.9 kB
JavaScript
import{i as e,r as t,t as n}from"./chunk-C-EqMg7d.js";import{C as r,S as i,_ as a,b as o,f as s,g as c,i as l,n as u,p as d,r as f,s as p,t as m,v as h,w as g,x as _,y as v}from"./openApi-DXfWYPpF.js";import"@hey-api/codegen-core";import y from"ansi-colors";import b from"color-support";import x from"node:fs";import S from"node:path";import{$RefParser as C}from"@hey-api/json-schema-ref-parser";const w=()=>{if(typeof Bun<`u`){let[e]=Bun.version.split(`.`).map(Number);if(e<1)throw new a(`Unsupported Bun version ${Bun.version}. Please use Bun 1.0.0 or newer.`)}else if(typeof process<`u`&&process.versions?.node){let[e]=process.versions.node.split(`.`).map(Number);if(e<20)throw new a(`Unsupported Node version ${process.versions.node}. Please use Node 20 or newer.`)}},T=async({context:e})=>{let t=S.resolve(e.config.output.path);e.config.output.clean&&x.existsSync(t)&&x.rmSync(t,{force:!0,recursive:!0});let n={importFileExtension:e.config.output.importFileExtension},r=s(e.config);`bundle`in r.config&&r.config.bundle&&!e.config.dryRun&&(e.config._FRAGILE_CLIENT_BUNDLE_RENAMED=p({meta:n,outputPath:t,plugin:r,project:e.gen}));for(let t of e.registerPlugins())await t.run();for(let r of e.gen.render(n)){let n=S.resolve(t,r.path),i=S.dirname(n);e.config.dryRun||(x.mkdirSync(i,{recursive:!0}),x.writeFileSync(n,r.content,{encoding:`utf8`}))}},E=({patchOptions:e,spec:t})=>{if(!e)return;let n=t;if(`swagger`in n){if(e.version&&n.swagger&&(n.swagger=typeof e.version==`string`?e.version:e.version(n.swagger)),e.meta&&n.info&&e.meta(n.info),e.schemas&&n.definitions)for(let t in e.schemas){let r=n.definitions[t];if(!r||typeof r!=`object`)continue;let i=e.schemas[t];i(r)}if(e.operations&&n.paths)for(let t in e.operations){let[r,i]=t.split(` `);if(!r||!i)continue;let a=n.paths[i];if(!a)continue;let o=a[r.toLocaleLowerCase()]||a[r.toLocaleUpperCase()];if(!o||typeof o!=`object`)continue;let s=e.operations[t];s(o)}return}if(e.version&&n.openapi&&(n.openapi=typeof e.version==`string`?e.version:e.version(n.openapi)),e.meta&&n.info&&e.meta(n.info),n.components){if(e.schemas&&n.components.schemas)for(let t in e.schemas){let r=n.components.schemas[t];if(!r||typeof r!=`object`)continue;let i=e.schemas[t];i(r)}if(e.parameters&&n.components.parameters)for(let t in e.parameters){let r=n.components.parameters[t];if(!r||typeof r!=`object`)continue;let i=e.parameters[t];i(r)}if(e.requestBodies&&n.components.requestBodies)for(let t in e.requestBodies){let r=n.components.requestBodies[t];if(!r||typeof r!=`object`)continue;let i=e.requestBodies[t];i(r)}if(e.responses&&n.components.responses)for(let t in e.responses){let r=n.components.responses[t];if(!r||typeof r!=`object`)continue;let i=e.responses[t];i(r)}}if(e.operations&&n.paths)for(let t in e.operations){let[r,i]=t.split(` `);if(!r||!i)continue;let a=n.paths[i];if(!a)continue;let o=a[r.toLocaleLowerCase()]||a[r.toLocaleUpperCase()];if(!o||typeof o!=`object`)continue;let s=e.operations[t];s(o)}};var D=n(((e,n)=>{n.exports=o,o.sync=s;var r=t(`fs`);function i(e,t){var n=t.pathExt===void 0?process.env.PATHEXT:t.pathExt;if(!n||(n=n.split(`;`),n.indexOf(``)!==-1))return!0;for(var r=0;r<n.length;r++){var i=n[r].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function a(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:i(t,n)}function o(e,t,n){r.stat(e,function(r,i){n(r,r?!1:a(i,e,t))})}function s(e,t){return a(r.statSync(e),e,t)}})),O=n(((e,n)=>{n.exports=i,i.sync=a;var r=t(`fs`);function i(e,t,n){r.stat(e,function(e,r){n(e,e?!1:o(r,t))})}function a(e,t){return o(r.statSync(e),t)}function o(e,t){return e.isFile()&&s(e,t)}function s(e,t){var n=e.mode,r=e.uid,i=e.gid,a=t.uid===void 0?process.getuid&&process.getuid():t.uid,o=t.gid===void 0?process.getgid&&process.getgid():t.gid,s=64,c=8,l=1,u=s|c;return n&l||n&c&&i===o||n&s&&r===a||n&u&&a===0}})),k=n(((e,n)=>{t(`fs`);var r=process.platform===`win32`||global.TESTING_WINDOWS?D():O();n.exports=i,i.sync=a;function i(e,t,n){if(typeof t==`function`&&(n=t,t={}),!n){if(typeof Promise!=`function`)throw TypeError(`callback not provided`);return new Promise(function(n,r){i(e,t||{},function(e,t){e?r(e):n(t)})})}r(e,t||{},function(e,r){e&&(e.code===`EACCES`||t&&t.ignoreErrors)&&(e=null,r=!1),n(e,r)})}function a(e,t){try{return r.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||e.code===`EACCES`)return!1;throw e}}})),A=n(((e,n)=>{let r=process.platform===`win32`||process.env.OSTYPE===`cygwin`||process.env.OSTYPE===`msys`,i=t(`path`),a=r?`;`:`:`,o=k(),s=e=>Object.assign(Error(`not found: ${e}`),{code:`ENOENT`}),c=(e,t)=>{let n=t.colon||a,i=e.match(/\//)||r&&e.match(/\\/)?[``]:[...r?[process.cwd()]:[],...(t.path||process.env.PATH||``).split(n)],o=r?t.pathExt||process.env.PATHEXT||`.EXE;.CMD;.BAT;.COM`:``,s=r?o.split(n):[``];return r&&e.indexOf(`.`)!==-1&&s[0]!==``&&s.unshift(``),{pathEnv:i,pathExt:s,pathExtExe:o}},l=(e,t,n)=>{typeof t==`function`&&(n=t,t={}),t||={};let{pathEnv:r,pathExt:a,pathExtExe:l}=c(e,t),u=[],d=n=>new Promise((a,o)=>{if(n===r.length)return t.all&&u.length?a(u):o(s(e));let c=r[n],l=/^".*"$/.test(c)?c.slice(1,-1):c,d=i.join(l,e);a(f(!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d,n,0))}),f=(e,n,r)=>new Promise((i,s)=>{if(r===a.length)return i(d(n+1));let c=a[r];o(e+c,{pathExt:l},(a,o)=>{if(!a&&o)if(t.all)u.push(e+c);else return i(e+c);return i(f(e,n,r+1))})});return n?d(0).then(e=>n(null,e),n):d(0)};n.exports=l,l.sync=(e,t)=>{t||={};let{pathEnv:n,pathExt:r,pathExtExe:a}=c(e,t),l=[];for(let s=0;s<n.length;s++){let c=n[s],u=/^".*"$/.test(c)?c.slice(1,-1):c,d=i.join(u,e),f=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let e=0;e<r.length;e++){let n=f+r[e];try{if(o.sync(n,{pathExt:a}))if(t.all)l.push(n);else return n}catch{}}}if(t.all&&l.length)return l;if(t.nothrow)return null;throw s(e)}})),j=n(((e,t)=>{let n=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`};t.exports=n,t.exports.default=n})),M=n(((e,n)=>{let r=t(`path`),i=A(),a=j();function o(e,t){let n=e.options.env||process.env,o=process.cwd(),s=e.options.cwd!=null,c=s&&process.chdir!==void 0&&!process.chdir.disabled;if(c)try{process.chdir(e.options.cwd)}catch{}let l;try{l=i.sync(e.command,{path:n[a({env:n})],pathExt:t?r.delimiter:void 0})}catch{}finally{c&&process.chdir(o)}return l&&=r.resolve(s?e.options.cwd:``,l),l}function s(e){return o(e)||o(e,!0)}n.exports=s})),N=n(((e,t)=>{let n=/([()\][%!^"`<>&|;, *?])/g;function r(e){return e=e.replace(n,`^$1`),e}function i(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`),e=e.replace(/(?=(\\+?)?)\1$/,`$1$1`),e=`"${e}"`,e=e.replace(n,`^$1`),t&&(e=e.replace(n,`^$1`)),e}t.exports.command=r,t.exports.argument=i})),P=n(((e,t)=>{t.exports=/^#!(.*)/})),F=n(((e,t)=>{let n=P();t.exports=(e=``)=>{let t=e.match(n);if(!t)return null;let[r,i]=t[0].replace(/#! ?/,``).split(` `),a=r.split(`/`).pop();return a===`env`?i:i?`${a} ${i}`:a}})),I=n(((e,n)=>{let r=t(`fs`),i=F();function a(e){let t=Buffer.alloc(150),n;try{n=r.openSync(e,`r`),r.readSync(n,t,0,150,0),r.closeSync(n)}catch{}return i(t.toString())}n.exports=a})),L=n(((e,n)=>{let r=t(`path`),i=M(),a=N(),o=I(),s=process.platform===`win32`,c=/\.(?:com|exe)$/i,l=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function u(e){e.file=i(e);let t=e.file&&o(e.file);return t?(e.args.unshift(e.file),e.command=t,i(e)):e.file}function d(e){if(!s)return e;let t=u(e),n=!c.test(t);if(e.options.forceShell||n){let n=l.test(t);e.command=r.normalize(e.command),e.command=a.command(e.command),e.args=e.args.map(e=>a.argument(e,n)),e.args=[`/d`,`/s`,`/c`,`"${[e.command].concat(e.args).join(` `)}"`],e.command=process.env.comspec||`cmd.exe`,e.options.windowsVerbatimArguments=!0}return e}function f(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:d(r)}n.exports=f})),R=n(((e,t)=>{let n=process.platform===`win32`;function r(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:`ENOENT`,errno:`ENOENT`,syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function i(e,t){if(!n)return;let r=e.emit;e.emit=function(n,i){if(n===`exit`){let n=a(i,t);if(n)return r.call(e,`error`,n)}return r.apply(e,arguments)}}function a(e,t){return n&&e===1&&!t.file?r(t.original,`spawn`):null}function o(e,t){return n&&e===1&&!t.file?r(t.original,`spawnSync`):null}t.exports={hookChildProcess:i,verifyENOENT:a,verifyENOENTSync:o,notFoundError:r}})),z=e(n(((e,n)=>{let r=t(`child_process`),i=L(),a=R();function o(e,t,n){let o=i(e,t,n),s=r.spawn(o.command,o.args,o.options);return a.hookChildProcess(s,o),s}function s(e,t,n){let o=i(e,t,n),s=r.spawnSync(o.command,o.args,o.options);return s.error=s.error||a.verifyENOENTSync(s.status,o),s}n.exports=o,n.exports.spawn=o,n.exports.sync=s,n.exports._parse=i,n.exports._enoent=a}))(),1);const B={biome:{args:e=>[`format`,`--write`,e],command:`biome`,name:`Biome (Format)`},prettier:{args:e=>[`--ignore-unknown`,e,`--write`,`--ignore-path`,`./.prettierignore`],command:`prettier`,name:`Prettier`}},V={biome:{args:e=>[`lint`,`--apply`,e],command:`biome`,name:`Biome (Lint)`},eslint:{args:e=>[e,`--fix`],command:`eslint`,name:`ESLint`},oxlint:{args:e=>[`--fix`,e],command:`oxlint`,name:`oxlint`}},H=({config:e})=>{if(e.output.format){let t=B[e.output.format];console.log(`✨ Running ${t.name}`),(0,z.sync)(t.command,t.args(e.output.path))}if(e.output.lint){let t=V[e.output.lint];console.log(`✨ Running ${t.name}`),(0,z.sync)(t.command,t.args(e.output.path))}},U=e=>{let t={...e,path:``};if(e.path&&(typeof e.path!=`string`||e.registry!==`hey-api`))return t.path=e.path,t;let[n,r]=e.path.split(`?`),i=(r||``).split(`&`).map(e=>e.split(`=`)),a=n||``;a.endsWith(`/`)&&(a=a.slice(0,a.length-1));let[,o]=a.split(`://`),[s,c,l]=(o||``).split(`/`);t.organization=c||e.organization,t.project=l||e.project;let u=[],d=`api_key`;t.api_key=i.find(([e])=>e===d)?.[1]||e.api_key||process.env.HEY_API_TOKEN,t.api_key&&u.push(`${d}=${t.api_key}`);let f=`branch`;t.branch=i.find(([e])=>e===f)?.[1]||e.branch,t.branch&&u.push(`${f}=${t.branch}`);let p=`commit_sha`;t.commit_sha=i.find(([e])=>e===p)?.[1]||e.commit_sha,t.commit_sha&&u.push(`${p}=${t.commit_sha}`);let m=`tags`;t.tags=i.find(([e])=>e===m)?.[1]?.split(`,`)||e.tags,t.tags?.length&&u.push(`${m}=${t.tags.join(`,`)}`);let h=`version`;if(t.version=i.find(([e])=>e===h)?.[1]||e.version,t.version&&u.push(`${h}=${t.version}`),!t.organization)throw Error(`missing organization - from which Hey API Platform organization do you want to generate your output?`);if(!t.project)throw Error(`missing project - from which Hey API Platform project do you want to generate your output?`);let g=u.join(`&`),_=s||`get.heyapi.dev`,v=_.startsWith(`localhost`),y=[v?`http`:`https`,_].join(`://`),b=v?[y,`v1`,`get`,t.organization,t.project].join(`/`):[y,t.organization,t.project].join(`/`);return t.path=g?`${b}?${g}`:b,t},W=(e,t)=>{let n=[],r=y.gray(`[Job ${t+1}] `),i=e.length,a=y.cyan(`Generating from ${i} ${i===1?`input`:`inputs`}:`);n.push(`${r}⏳ ${a}`),e.forEach((e,t)=>{let i=` [${t+1}] `,a=y.cyan(i),o=` `.repeat(i.length);if(typeof e.path!=`string`){n.push(`${r}${a}raw OpenAPI specification`);return}switch(e.registry){case`hey-api`:{let t=[e.organization,e.project].filter(Boolean).join(`/`);n.push(`${r}${a}${t}`),e.branch&&n.push(`${r}${o}${y.gray(`branch:`)} ${y.green(e.branch)}`),e.commit_sha&&n.push(`${r}${o}${y.gray(`commit:`)} ${y.green(e.commit_sha)}`),e.tags?.length&&n.push(`${r}${o}${y.gray(`tags:`)} ${y.green(e.tags.join(`, `))}`),e.version&&n.push(`${r}${o}${y.gray(`version:`)} ${y.green(e.version)}`),n.push(`${r}${o}${y.gray(`registry:`)} ${y.green(`Hey API`)}`);break}case`readme`:{let t=[e.organization,e.project].filter(Boolean).join(`/`);t?n.push(`${r}${a}${t}`):n.push(`${r}${a}${e.path}`),e.uuid&&n.push(`${r}${o}${y.gray(`uuid:`)} ${y.green(e.uuid)}`),n.push(`${r}${o}${y.gray(`registry:`)} ${y.green(`ReadMe`)}`);break}case`scalar`:{let t=[e.organization,e.project].filter(Boolean).join(`/`);n.push(`${r}${a}${t}`),n.push(`${r}${o}${y.gray(`registry:`)} ${y.green(`Scalar`)}`);break}default:n.push(`${r}${a}${e.path}`);break}});for(let e of n)console.log(e)},G=async({config:e,dependencies:t,jobIndex:n,logger:r,watches:i})=>{let a=i||Array.from({length:e.input.length},()=>({headers:new Headers})),o=e.input.map(e=>U(e));e.logs.level!==`silent`&&!i&&W(o,n);let s=async(e,t)=>{let n=r.timeEvent(`spec`),{arrayBuffer:s,error:c,resolvedInput:l,response:u}=await f({fetchOptions:e.fetch,inputPath:o[t].path,timeout:e.watch.timeout,watch:a[t]});if(n.timeEnd(),c&&!i)throw Error(`Request failed with status ${u.status}: ${u.statusText}`);return{arrayBuffer:s,resolvedInput:l}},c=(await Promise.all(e.input.map((e,t)=>s(e,t)))).filter(e=>e.arrayBuffer||e.resolvedInput),l;if(c.length){let a=new C,s=c.length>1?await a.bundleMany({arrayBuffer:c.map(e=>e.arrayBuffer),pathOrUrlOrSchemas:[],resolvedInputs:c.map(e=>e.resolvedInput)}):await a.bundle({arrayBuffer:c[0].arrayBuffer,pathOrUrlOrSchema:void 0,resolvedInput:c[0].resolvedInput});e.logs.level!==`silent`&&i&&(console.clear(),W(o,n));let d=r.timeEvent(`input.patch`);E({patchOptions:e.parser.patch,spec:s}),d.timeEnd();let f=r.timeEvent(`parser`);l=m({config:e,dependencies:t,logger:r,spec:s}),l.graph=u(l.ir,r).graph,f.timeEnd();let p=r.timeEvent(`generator`);await T({context:l}),p.timeEnd();let h=r.timeEvent(`postprocess`);if(!e.dryRun&&(H({config:e}),e.logs.level!==`silent`)){let t=process.env.INIT_CWD?`./${S.relative(process.env.INIT_CWD,e.output.path)}`:e.output.path,r=y.gray(`[Job ${n+1}] `);console.log(`${r}${y.green(`✅ Done!`)} Your output is in ${y.cyanBright(t)}`)}h.timeEnd()}let d=e.input.find((e,t)=>e.watch.enabled&&typeof o[t].path==`string`);return d&&setTimeout(()=>{G({config:e,dependencies:t,jobIndex:n,logger:r,watches:a})},d.watch.interval),l},K=(e,t)=>{let n=[],r=Array.from({length:t?.padding??0}).fill(``);n.push(...r);let i=0,a=``;for(let t of e)t===`
`?a&&=(n.push(a),i=Math.max(i,a.length),``):a+=t;return n.push(...r),{lines:n,maxLineLength:i}};function q(){let e=g(),t=K(`
888 | e 888~-_ 888
888___| e88~~8e Y88b / d8b 888 \\ 888
888 | d888 88b Y888/ /Y88b 888 | 888
888 | 8888__888 Y8/ / Y88b 888 / 888
888 | Y888 , Y /____Y88b 888_-~ 888
888 | "88___/ / / Y88b 888 888
_/
`,{padding:1});for(let e of t.lines)console.log(y.cyan(e));console.log(y.gray(`${e.name} v${e.version}`)),console.log(``)}let J=0;const Y=e=>`${e}-${J++}`,X=e=>`${e}-end`,Z=e=>`${e}-length`,Q=e=>`${e}-start`,ee=(e,t)=>{if(e>200)return{color:y.red,type:`duration`};if(t>30)return{color:y.red,type:`percentage`};if(e>50)return{color:y.yellow,type:`duration`};if(t>10)return{color:y.yellow,type:`percentage`}};var $=class{events=[];end(e){let t,n=this.events;for(let r of e.position)t=n[r],t?.events&&(n=t.events);t&&!t.end&&(t.end=performance.mark(X(t.id)))}endAllEvents(e){for(let t of e)t.end||=performance.mark(X(t.id)),t.events.length>0&&this.endAllEvents(t.events)}report(e=!0){let t=this.events[0];if(!t)return;this.endAllEvents(this.events);let n=this.events[this.events.length-1],r=`root`,i=Y(r);try{let a=performance.measure(Z(i),Q(t.id),X(n.id));return e&&this.reportEvent({end:n.end,events:this.events,id:i,indent:0,measure:a,name:r,start:t.start}),a}catch{return}}reportEvent({indent:e,...t}){let n=e?y.gray:y.cyan,r=t.events.length-1;t.events.forEach((i,a)=>{try{let o=performance.measure(Z(i.id),Q(i.id),X(i.id)),s=Math.ceil(o.duration*100)/100,c=Math.ceil(o.duration/t.measure.duration*100*100)/100,l=e?ee(s,c):void 0,u=`${s.toFixed(2).padStart(8)}ms`;l?.type===`duration`&&(u=l.color(u));let d=a===r?`└─ `:`├─ `,f=e?`│ `.repeat(e-1)+d:``,p=38-f.length,m=e?`↳ `:``,h=`${e?` `.repeat(e-1)+m:``}${c.toFixed(2)}%`;l?.type===`percentage`&&(h=l.color(h));let g=y.gray(`[root] `);console.log(`${g}${y.gray(f)}${n(`${i.name.padEnd(p)} ${u} (${h})`)}`),this.reportEvent({...i,indent:e+1,measure:o})}catch{}})}start(e){return performance.mark(Q(e))}storeEvent({result:e,...t}){let n=t.events.length-1,r=t.events[n];if(r&&!r.end){e.position=[...e.position,n],this.storeEvent({...t,events:r.events,result:e});return}let i=t.events.push({...t,events:[]});e.position=[...e.position,i-1]}timeEvent(e){let t=Y(e),n=this.start(t),r={events:this.events,id:t,name:e,start:n},i={position:[]};return this.storeEvent({...r,result:i}),{mark:n,timeEnd:()=>this.end(i)}}};const te=async(e,t=new $)=>{let n=typeof e==`function`?await e():e,a=n?n instanceof Array?n:[n]:[],s=a.find(e=>c(e).level!==`silent`)?.logs;typeof s==`string`&&(s=c({logs:s}));let u;try{w();let e=t.timeEvent(`createClient`),n=t.timeEvent(`config`);u=await l({logger:t,userConfigs:a}),u.results.some(e=>e.config.logs.level!==`silent`)&&q(),n.timeEnd();let r=u.results.flatMap(e=>e.errors.map(t=>({error:t,jobIndex:e.jobIndex})));if(r.length)throw new h(r);let i=(await Promise.all(u.results.map(async e=>{try{return await G({config:e.config,dependencies:u.dependencies,jobIndex:e.jobIndex,logger:t})}catch(t){throw new v(``,{error:t,jobIndex:e.jobIndex})}}))).filter(e=>!!e);e.timeEnd();let o=u.results.some(e=>e.config.logs.level===`debug`);return t.report(o),i}catch(e){let t=u?.results??[],n=t.find(e=>e.config.logs.level!==`silent`)?.config.logs??t[0]?.config.logs??s,c=t.some(e=>e.config.dryRun)??a.some(e=>e.dryRun)??!1,l=n?.file&&!c?o(e,n.path??``):void 0;throw(!n||n.level!==`silent`)&&(i({error:e,logPath:l}),await r({error:e,isInteractive:t.some(e=>e.config.interactive)??a.some(e=>e.interactive)??!1})&&await _(e)),e}},ne={stringCase:d};y.enabled=b().hasBasic;const re=async e=>typeof e==`function`?await e():e;export{$ as i,ne as n,te as r,re as t};
//# sourceMappingURL=src-CTUbY-zd.js.map