@visulima/jsdoc-open-api 3.0.0-alpha.27 → 3.0.0-alpha.28
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/CHANGELOG.md +11 -0
- package/dist/cli/commander/index.cjs +1 -1
- package/dist/cli/commander/index.mjs +1 -1
- package/dist/cli/index.cjs +1 -1
- package/dist/cli/index.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/packem_shared/SwaggerCompilerPlugin-Dz_h2XB7.cjs +1 -0
- package/dist/packem_shared/SwaggerCompilerPlugin-HasoKKtw.mjs +1 -0
- package/dist/packem_shared/generateCommand-C8cnfcN7.cjs +4 -0
- package/dist/packem_shared/{generateCommand-DWXSUZxZ.mjs → generateCommand-CsPJY2UQ.mjs} +1 -1
- package/dist/packem_shared/generateCommand-DjMBmVdl.mjs +4 -0
- package/dist/packem_shared/{generateCommand-IDN6r1fR.cjs → generateCommand-Djp2aFKo.cjs} +1 -1
- package/dist/packem_shared/jsDocumentCommentsToOpenApi-CkXyEORi.cjs +1 -0
- package/dist/packem_shared/jsDocumentCommentsToOpenApi-CsKVtvW4.mjs +1 -0
- package/dist/packem_shared/parseFile-B7dCmwpU.cjs +1 -0
- package/dist/packem_shared/parseFile-C7DRmTDf.mjs +1 -0
- package/package.json +2 -2
- package/dist/packem_shared/SwaggerCompilerPlugin-CQiTDSm2.cjs +0 -1
- package/dist/packem_shared/SwaggerCompilerPlugin-CTiomx-N.mjs +0 -1
- package/dist/packem_shared/generateCommand-BtCK1O88.cjs +0 -4
- package/dist/packem_shared/generateCommand-CRR2nmxN.mjs +0 -4
- package/dist/packem_shared/jsDocumentCommentsToOpenApi-C9inxd9m.mjs +0 -1
- package/dist/packem_shared/jsDocumentCommentsToOpenApi-D859Nr79.cjs +0 -1
- package/dist/packem_shared/parseFile-C7tyTcIn.cjs +0 -1
- package/dist/packem_shared/parseFile-CtAVjmPd.mjs +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## @visulima/jsdoc-open-api [3.0.0-alpha.28](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.27...@visulima/jsdoc-open-api@3.0.0-alpha.28) (2026-06-04)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **jsdoc-open-api:** 3 bug fixes ([1336b87](https://github.com/visulima/visulima/commit/1336b870964f2645505efbf2720218ddb5aaa18d))
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Dependencies
|
|
9
|
+
|
|
10
|
+
* **@visulima/fs:** upgraded to 5.0.0-alpha.30
|
|
11
|
+
|
|
1
12
|
## @visulima/jsdoc-open-api [3.0.0-alpha.27](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.26...@visulima/jsdoc-open-api@3.0.0-alpha.27) (2026-06-02)
|
|
2
13
|
|
|
3
14
|
### Miscellaneous Chores
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../../packem_shared/generateCommand-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../../packem_shared/generateCommand-Djp2aFKo.cjs"),t=require("../../packem_shared/initCommand-DAcI_ilX.cjs");exports.generateCommand=e;exports.initCommand=t;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{default as m}from"../../packem_shared/generateCommand-
|
|
1
|
+
import{default as m}from"../../packem_shared/generateCommand-CsPJY2UQ.mjs";import{default as t}from"../../packem_shared/initCommand-Bm4veOwd.mjs";export{m as generateCommand,t as initCommand};
|
package/dist/cli/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../packem_shared/generateCommand-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../packem_shared/generateCommand-C8cnfcN7.cjs"),t=require("../packem_shared/initCommand-CiV7G3q4.cjs");exports.generateCommand=e;exports.initCommand=t;
|
package/dist/cli/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{default as m}from"../packem_shared/generateCommand-
|
|
1
|
+
import{default as m}from"../packem_shared/generateCommand-DjMBmVdl.mjs";import{default as t}from"../packem_shared/initCommand-CwoPwelm.mjs";export{m as generateCommand,t as initCommand};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./packem_shared/jsDocumentCommentsToOpenApi-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./packem_shared/jsDocumentCommentsToOpenApi-CkXyEORi.cjs"),r=require("./packem_shared/parseFile-B7dCmwpU.cjs"),i=require("./packem_shared/SpecBuilder-CR4EZk93.cjs"),o=require("./packem_shared/swaggerJsDocumentCommentsToOpenApi-CPuUxW0D.cjs"),u=require("./packem_shared/yamlLoc-DyGcp8YC.cjs"),m=require("./packem_shared/SwaggerCompilerPlugin-Dz_h2XB7.cjs");exports.jsDocumentCommentsToOpenApi=e;exports.parseFile=r;exports.SpecBuilder=i;exports.swaggerJsDocumentCommentsToOpenApi=o;exports.yamlLoc=u;exports.SwaggerCompilerPlugin=m;
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{default as r}from"./packem_shared/jsDocumentCommentsToOpenApi-
|
|
1
|
+
import{default as r}from"./packem_shared/jsDocumentCommentsToOpenApi-CsKVtvW4.mjs";import{default as t}from"./packem_shared/parseFile-C7DRmTDf.mjs";import{default as p}from"./packem_shared/SpecBuilder-DjnDJFpv.mjs";import{default as s}from"./packem_shared/swaggerJsDocumentCommentsToOpenApi-Dy8pOPTp.mjs";import{default as u}from"./packem_shared/yamlLoc-C2tVIYaz.mjs";import{default as n}from"./packem_shared/SwaggerCompilerPlugin-HasoKKtw.mjs";export{p as SpecBuilder,n as SwaggerCompilerPlugin,r as jsDocumentCommentsToOpenApi,t as parseFile,s as swaggerJsDocumentCommentsToOpenApi,u as yamlLoc};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var b=Object.defineProperty;var g=(e,s)=>b(e,"name",{value:s,configurable:!0});const d=require("node:fs/promises"),y=require("node:path"),u=require("node:process"),q=require("@visulima/fs"),m=require("./validate-tZa-jyuN.cjs"),D=require("./jsDocumentCommentsToOpenApi-CkXyEORi.cjs"),w=require("./parseFile-B7dCmwpU.cjs"),P=require("./SpecBuilder-CR4EZk93.cjs"),S=require("./swaggerJsDocumentCommentsToOpenApi-CPuUxW0D.cjs");var x=Object.defineProperty,f=g((e,s)=>x(e,"name",{value:s,configurable:!0}),"g");const j=f(e=>{e&&(console.error(e),u.exit(1))},"errorHandler");class O{static{g(this,"E")}static{f(this,"SwaggerCompilerPlugin")}assetsPath;ignore;sources;swaggerDefinition;verbose;constructor(s,t,h,i){this.assetsPath=s,this.swaggerDefinition=h,this.sources=t,this.verbose=i.verbose??!1,this.ignore=i.ignore??[]}apply(s){const t=new Set([...m.D,...this.ignore]);s.hooks.make.tapAsync("SwaggerCompilerPlugin",async(h,i)=>{console.log("Build paused, switching to swagger build");const r=new P(this.swaggerDefinition);for(const o of this.sources){const n=await q.collect(o,{extensions:[".js",".cjs",".mjs",".ts",".tsx",".jsx",".yaml",".yml"],includeDirs:!1,skip:[...t]});this.verbose&&(console.log(`Found ${String(n.length)} files in ${o}`),console.log(n)),n.forEach(a=>{this.verbose&&console.log(`Parsing file ${a}`);try{const c=w(a,D,this.verbose);r.addData(c.map(l=>l.spec));const v=w(a,S,this.verbose);r.addData(v.map(l=>l.spec))}catch(c){console.error(c),u.exit(1)}})}try{this.verbose&&(console.log("Validating swagger spec"),console.log(JSON.stringify(r,void 0,2))),await m.r(structuredClone(r))}catch(o){console.error(o.toJSON()),u.exit(1)}const{assetsPath:p}=this;try{await d.mkdir(y.dirname(p),{recursive:!0}),await d.writeFile(p,JSON.stringify(r,void 0,2))}catch(o){j(o)}this.verbose&&console.log(`Written swagger spec to "${this.assetsPath}" file`),console.log("switching back to normal build"),i()})}}module.exports=O;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var w=Object.defineProperty;var g=(s,o)=>w(s,"name",{value:o,configurable:!0});import{mkdir as v,writeFile as b}from"node:fs/promises";import{dirname as y}from"node:path";import{exit as m}from"node:process";import{collect as D}from"@visulima/fs";import{r as P,D as S}from"./validate-_k84qawx.mjs";import $ from"./jsDocumentCommentsToOpenApi-CsKVtvW4.mjs";import p from"./parseFile-C7DRmTDf.mjs";import j from"./SpecBuilder-DjnDJFpv.mjs";import k from"./swaggerJsDocumentCommentsToOpenApi-Dy8pOPTp.mjs";var x=Object.defineProperty,u=g((s,o)=>x(s,"name",{value:o,configurable:!0}),"g");const E=u(s=>{s&&(console.error(s),m(1))},"errorHandler");class T{static{g(this,"E")}static{u(this,"SwaggerCompilerPlugin")}assetsPath;ignore;sources;swaggerDefinition;verbose;constructor(o,i,h,r){this.assetsPath=o,this.swaggerDefinition=h,this.sources=i,this.verbose=r.verbose??!1,this.ignore=r.ignore??[]}apply(o){const i=new Set([...S,...this.ignore]);o.hooks.make.tapAsync("SwaggerCompilerPlugin",async(h,r)=>{console.log("Build paused, switching to swagger build");const t=new j(this.swaggerDefinition);for(const e of this.sources){const a=await D(e,{extensions:[".js",".cjs",".mjs",".ts",".tsx",".jsx",".yaml",".yml"],includeDirs:!1,skip:[...i]});this.verbose&&(console.log(`Found ${String(a.length)} files in ${e}`),console.log(a)),a.forEach(n=>{this.verbose&&console.log(`Parsing file ${n}`);try{const c=p(n,$,this.verbose);t.addData(c.map(l=>l.spec));const d=p(n,k,this.verbose);t.addData(d.map(l=>l.spec))}catch(c){console.error(c),m(1)}})}try{this.verbose&&(console.log("Validating swagger spec"),console.log(JSON.stringify(t,void 0,2))),await P(structuredClone(t))}catch(e){console.error(e.toJSON()),m(1)}const{assetsPath:f}=this;try{await v(y(f),{recursive:!0}),await b(f,JSON.stringify(t,void 0,2))}catch(e){E(e)}this.verbose&&console.log(`Written swagger spec to "${this.assetsPath}" file`),console.log("switching back to normal build"),r()})}}export{T as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";var x=Object.defineProperty;var w=(t,i)=>x(t,"name",{value:i,configurable:!0});const g=require("node:fs/promises"),v=require("node:path"),C=require("node:url"),O=require("@visulima/fs"),b=require("cli-progress"),y=require("./validate-tZa-jyuN.cjs"),h=require("./jsDocumentCommentsToOpenApi-CkXyEORi.cjs"),f=require("./parseFile-B7dCmwpU.cjs"),$=require("./SpecBuilder-CR4EZk93.cjs"),q=require("./swaggerJsDocumentCommentsToOpenApi-CPuUxW0D.cjs");var k=Object.defineProperty,F=w((t,i)=>k(t,"name",{value:i,configurable:!0}),"u");const P=F(async(t,i,e)=>{let s;try{let o=await import(C.pathToFileURL(v.normalize(e.config??t)).href);o?.default&&(o=o.default),s=o}catch{throw new Error(`No config file found, on: ${e.config??".openapirc.js"}
|
|
2
|
+
`)}const p=new b.MultiBar({clearOnComplete:!1,format:"{value}/{total} | {bar} | {filename}",hideCursor:!0},b.Presets.shades_grey),r=new $(s.swaggerDefinition),D=new Set([...y.D,...s.exclude]);for(const o of i){const j=(await g.lstat(o)).isDirectory(),a=await g.realpath(o);if(!j){const n=f(a,h,e.verbose);r.addData(n.map(l=>l.spec));const d=f(a,q,e.verbose);r.addData(d.map(l=>l.spec));continue}const u=await O.collect(a,{extensions:s.extensions??[".js",".cjs",".mjs",".ts",".tsx",".jsx",".yaml",".yml"],followSymlinks:s.followSymlinks??!1,match:s.include,skip:[...D]});(e.verbose??e.veryVerbose)&&console.log(`
|
|
3
|
+
Found ${String(u.length)} files in ${a}`),e.veryVerbose&&console.log(u);const S=p.create(u.length,0);u.forEach(n=>{e.verbose&&console.log(`Parsing file ${n}`),S.increment(1,{filename:a});const d=f(n,h,e.verbose);r.addData(d.map(m=>m.spec));const l=f(n,q,e.verbose);r.addData(l.map(m=>m.spec))})}e.verbose&&console.log("Validating swagger spec"),e.veryVerbose&&console.log(JSON.stringify(r,void 0,2)),await y.r(structuredClone(r));const c=e.output??"swagger.json";p.stop(),e.verbose&&console.log(`Written swagger spec to "${c}" file`),await g.mkdir(v.dirname(c),{recursive:!0}),await g.writeFile(c,JSON.stringify(r,void 0,2)),console.log(`
|
|
4
|
+
Swagger specification is ready, check the "${c}" file.`)},"generateCommand");module.exports=P;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var p=Object.defineProperty;var t=(e,o)=>p(e,"name",{value:o,configurable:!0});import{exit as s}from"node:process";import c from"./generateCommand-
|
|
1
|
+
var p=Object.defineProperty;var t=(e,o)=>p(e,"name",{value:o,configurable:!0});import{exit as s}from"node:process";import c from"./generateCommand-DjMBmVdl.mjs";var u=Object.defineProperty,g=t((e,o)=>u(e,"name",{value:o,configurable:!0}),"t");const v=g((e,o="generate",r=".openapirc.js")=>{e.command(o).description("Generates OpenAPI (Swagger) documentation from JSDoc's").usage("[options] <path ...>").argument("[path ...]","Paths to files or directories to parse").option("-c, --config [.openapirc.js]","@visulima/jsdoc-open-api config file path.").option("-o, --output [swaggerSpec.json]","Output swagger specification.").option("-v, --verbose","Verbose output.").option("-d, --very-verbose","Very verbose output.").action(async(a,i)=>{try{await c(r,a,i)}catch(n){console.error(n),s(1)}})},"generateCommand");export{v as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var D=Object.defineProperty;var u=(a,s)=>D(a,"name",{value:s,configurable:!0});import{lstat as $,realpath as j,mkdir as S,writeFile as x}from"node:fs/promises";import{normalize as k,dirname as C}from"node:path";import{pathToFileURL as E}from"node:url";import{collect as F}from"@visulima/fs";import{MultiBar as O,Presets as V}from"cli-progress";import{r as A,D as L}from"./validate-_k84qawx.mjs";import w from"./jsDocumentCommentsToOpenApi-CsKVtvW4.mjs";import f from"./parseFile-C7DRmTDf.mjs";import N from"./SpecBuilder-DjnDJFpv.mjs";import v from"./swaggerJsDocumentCommentsToOpenApi-Dy8pOPTp.mjs";var P=Object.defineProperty,U=u((a,s)=>P(a,"name",{value:s,configurable:!0}),"u");const H=U(async(a,s,e)=>{let t;try{let r=await import(E(k(e.config??a)).href);r?.default&&(r=r.default),t=r}catch{throw new Error(`No config file found, on: ${e.config??".openapirc.js"}
|
|
2
|
+
`)}const d=new O({clearOnComplete:!1,format:"{value}/{total} | {bar} | {filename}",hideCursor:!0},V.shades_grey),o=new N(t.swaggerDefinition),b=new Set([...L,...t.exclude]);for(const r of s){const y=(await $(r)).isDirectory(),i=await j(r);if(!y){const n=f(i,w,e.verbose);o.addData(n.map(l=>l.spec));const g=f(i,v,e.verbose);o.addData(g.map(l=>l.spec));continue}const m=await F(i,{extensions:t.extensions??[".js",".cjs",".mjs",".ts",".tsx",".jsx",".yaml",".yml"],followSymlinks:t.followSymlinks??!1,match:t.include,skip:[...b]});(e.verbose??e.veryVerbose)&&console.log(`
|
|
3
|
+
Found ${String(m.length)} files in ${i}`),e.veryVerbose&&console.log(m);const h=d.create(m.length,0);m.forEach(n=>{e.verbose&&console.log(`Parsing file ${n}`),h.increment(1,{filename:i});const g=f(n,w,e.verbose);o.addData(g.map(p=>p.spec));const l=f(n,v,e.verbose);o.addData(l.map(p=>p.spec))})}e.verbose&&console.log("Validating swagger spec"),e.veryVerbose&&console.log(JSON.stringify(o,void 0,2)),await A(structuredClone(o));const c=e.output??"swagger.json";d.stop(),e.verbose&&console.log(`Written swagger spec to "${c}" file`),await S(C(c),{recursive:!0}),await x(c,JSON.stringify(o,void 0,2)),console.log(`
|
|
4
|
+
Swagger specification is ready, check the "${c}" file.`)},"generateCommand");export{H as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var s=Object.defineProperty;var t=(e,o)=>s(e,"name",{value:o,configurable:!0});const p=require("node:process"),c=require("./generateCommand-
|
|
1
|
+
"use strict";var s=Object.defineProperty;var t=(e,o)=>s(e,"name",{value:o,configurable:!0});const p=require("node:process"),c=require("./generateCommand-C8cnfcN7.cjs");var u=Object.defineProperty,g=t((e,o)=>u(e,"name",{value:o,configurable:!0}),"t");const m=g((e,o="generate",r=".openapirc.js")=>{e.command(o).description("Generates OpenAPI (Swagger) documentation from JSDoc's").usage("[options] <path ...>").argument("[path ...]","Paths to files or directories to parse").option("-c, --config [.openapirc.js]","@visulima/jsdoc-open-api config file path.").option("-o, --output [swaggerSpec.json]","Output swagger specification.").option("-v, --verbose","Verbose output.").option("-d, --very-verbose","Very verbose output.").action(async(a,n)=>{try{await c(r,a,n)}catch(i){console.error(i),p.exit(1)}})},"generateCommand");module.exports=m;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var l=Object.defineProperty;var u=(s,n)=>l(s,"name",{value:n,configurable:!0});const y=require("comment-parser"),b=require("es-toolkit"),f=require("./customizer-DUz3nxAJ.cjs");var g=Object.defineProperty,m=u((s,n)=>g(s,"name",{value:n,configurable:!0}),"p");const h=/\[\]$/,$=/^- /u,T=/Param$/u,q=/^(GET|PUT|POST|DELETE|OPTIONS|HEAD|PATCH|TRACE) \/.*$/,w=m(s=>{s.security&&(s.security=Object.keys(s.security).map(n=>({[n]:s.security[n]})))},"fixSecurityObject"),k=new Set(["array","boolean","integer","number","object","string"]),d={binary:"string",byte:"string",date:"string","date-time":"string",double:"number",float:"number",int32:"integer",int64:"integer",password:"string"},O=m(s=>{const n=s.type,a=n.endsWith("[]"),e=n.replace(h,""),c=k.has(e),t=Object.keys(d).includes(e);let r;if(s.default)switch(e){case"double":case"float":case"number":{r=Number.parseFloat(s.default);break}case"int32":case"int64":case"integer":{r=Number.parseInt(s.default,10);break}default:{r=s.default;break}}let o;c?o={default:r,type:e}:t?o={default:r,format:e,type:d[e]}:o={$ref:`#/components/schemas/${e}`};let p=a?{items:{...o},type:"array"}:{...o};e===""&&(p=void 0);let i=s.description.trim().replace($,"");return i===""&&(i=void 0),{description:i,name:s.name,rawType:n,required:!s.optional,schema:p}},"parseDescription"),P=m((s,n)=>s.map(a=>{const e=O(a);let c="";switch(e.name&&(c+=e.name),e.description&&(c+=` ${e.description.trim()}`),a.tag){case"bodyComponent":return{requestBody:{$ref:`#/components/requestBodies/${e.rawType}`}};case"bodyContent":return{requestBody:{content:{[e.name.replaceAll("*\\/*","*/*")]:{schema:e.schema}}}};case"bodyDescription":return{requestBody:{description:c}};case"bodyExample":{const[t,r]=e.name.split(".");return{requestBody:{content:{[t]:{examples:{[r]:{$ref:`#/components/examples/${e.rawType}`}}}}}}}case"bodyRequired":return{requestBody:{required:!0}};case"callback":return{callbacks:{[e.name]:{$ref:`#/components/callbacks/${e.rawType}`}}};case"cookieParam":case"headerParam":case"pathParam":case"queryParam":return{parameters:[{description:e.description,in:a.tag.replace(T,""),name:e.name,required:e.required,schema:e.schema}]};case"deprecated":return{deprecated:!0};case"description":case"operationId":case"summary":return{[a.tag]:c};case"externalDocs":return{externalDocs:{description:e.description,url:e.name}};case"paramComponent":return{parameters:[{$ref:`#/components/parameters/${e.rawType}`}]};case"response":return{responses:{[e.name]:{description:e.description}}};case"responseComponent":return{responses:{[e.name]:{$ref:`#/components/responses/${e.rawType}`}}};case"responseContent":{const[t,r]=e.name.split(".");return{responses:{[t]:{content:{[r]:{schema:e.schema}}}}}}case"responseExample":{const[t,r,o]=e.name.split(".");return{responses:{[t]:{content:{[r]:{examples:{[o]:{$ref:`#/components/examples/${e.rawType}`}}}}}}}}case"responseHeader":{const[t,r]=e.name.split(".");return{responses:{[t]:{headers:{[r]:{description:e.description,schema:e.schema}}}}}}case"responseHeaderComponent":{const[t,r]=e.name.split(".");return{responses:{[t]:{headers:{[r]:{$ref:`#/components/headers/${e.rawType}`}}}}}}case"responseLink":{const[t,r]=e.name.split(".");return{responses:{[t]:{links:{[r]:{$ref:`#/components/links/${e.rawType}`}}}}}}case"security":{const[t,r]=e.name.split(".");let o=[];return r&&(o=[r]),{security:{[t]:o}}}case"server":return{servers:[{description:e.description,url:e.name}]};case"tag":return{tags:[c]};default:return{}}}),"tagsToObjects"),x=m((s,n)=>y.parse(s,{spacing:"preserve"}).filter(a=>q.test(a.description.trim())).map(a=>{const e=a.tags.length+1,c={};for(const i of P(a.tags,n))b.mergeWith(c,i,f.o);w(c);const[t,r]=a.description.split(" "),o={[r.trim()]:{[t.toLowerCase().trim()]:{...c}}},p=JSON.parse(JSON.stringify({paths:o}));return{loc:e,spec:p}}),"commentsToOpenApi");module.exports=x;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var l=Object.defineProperty;var u=(s,n)=>l(s,"name",{value:n,configurable:!0});import{parse as y}from"comment-parser";import{mergeWith as f}from"es-toolkit";import{o as b}from"./customizer-COfd-Xr1.mjs";var g=Object.defineProperty,m=u((s,n)=>g(s,"name",{value:n,configurable:!0}),"p");const $=/\[\]$/,h=/^- /u,T=/Param$/u,w=/^(GET|PUT|POST|DELETE|OPTIONS|HEAD|PATCH|TRACE) \/.*$/,k=m(s=>{s.security&&(s.security=Object.keys(s.security).map(n=>({[n]:s.security[n]})))},"fixSecurityObject"),q=new Set(["array","boolean","integer","number","object","string"]),d={binary:"string",byte:"string",date:"string","date-time":"string",double:"number",float:"number",int32:"integer",int64:"integer",password:"string"},O=m(s=>{const n=s.type,a=n.endsWith("[]"),e=n.replace($,""),c=q.has(e),t=Object.keys(d).includes(e);let r;if(s.default)switch(e){case"double":case"float":case"number":{r=Number.parseFloat(s.default);break}case"int32":case"int64":case"integer":{r=Number.parseInt(s.default,10);break}default:{r=s.default;break}}let o;c?o={default:r,type:e}:t?o={default:r,format:e,type:d[e]}:o={$ref:`#/components/schemas/${e}`};let p=a?{items:{...o},type:"array"}:{...o};e===""&&(p=void 0);let i=s.description.trim().replace(h,"");return i===""&&(i=void 0),{description:i,name:s.name,rawType:n,required:!s.optional,schema:p}},"parseDescription"),P=m((s,n)=>s.map(a=>{const e=O(a);let c="";switch(e.name&&(c+=e.name),e.description&&(c+=` ${e.description.trim()}`),a.tag){case"bodyComponent":return{requestBody:{$ref:`#/components/requestBodies/${e.rawType}`}};case"bodyContent":return{requestBody:{content:{[e.name.replaceAll("*\\/*","*/*")]:{schema:e.schema}}}};case"bodyDescription":return{requestBody:{description:c}};case"bodyExample":{const[t,r]=e.name.split(".");return{requestBody:{content:{[t]:{examples:{[r]:{$ref:`#/components/examples/${e.rawType}`}}}}}}}case"bodyRequired":return{requestBody:{required:!0}};case"callback":return{callbacks:{[e.name]:{$ref:`#/components/callbacks/${e.rawType}`}}};case"cookieParam":case"headerParam":case"pathParam":case"queryParam":return{parameters:[{description:e.description,in:a.tag.replace(T,""),name:e.name,required:e.required,schema:e.schema}]};case"deprecated":return{deprecated:!0};case"description":case"operationId":case"summary":return{[a.tag]:c};case"externalDocs":return{externalDocs:{description:e.description,url:e.name}};case"paramComponent":return{parameters:[{$ref:`#/components/parameters/${e.rawType}`}]};case"response":return{responses:{[e.name]:{description:e.description}}};case"responseComponent":return{responses:{[e.name]:{$ref:`#/components/responses/${e.rawType}`}}};case"responseContent":{const[t,r]=e.name.split(".");return{responses:{[t]:{content:{[r]:{schema:e.schema}}}}}}case"responseExample":{const[t,r,o]=e.name.split(".");return{responses:{[t]:{content:{[r]:{examples:{[o]:{$ref:`#/components/examples/${e.rawType}`}}}}}}}}case"responseHeader":{const[t,r]=e.name.split(".");return{responses:{[t]:{headers:{[r]:{description:e.description,schema:e.schema}}}}}}case"responseHeaderComponent":{const[t,r]=e.name.split(".");return{responses:{[t]:{headers:{[r]:{$ref:`#/components/headers/${e.rawType}`}}}}}}case"responseLink":{const[t,r]=e.name.split(".");return{responses:{[t]:{links:{[r]:{$ref:`#/components/links/${e.rawType}`}}}}}}case"security":{const[t,r]=e.name.split(".");let o=[];return r&&(o=[r]),{security:{[t]:o}}}case"server":return{servers:[{description:e.description,url:e.name}]};case"tag":return{tags:[c]};default:return{}}}),"tagsToObjects"),j=m((s,n)=>y(s,{spacing:"preserve"}).filter(a=>w.test(a.description.trim())).map(a=>{const e=a.tags.length+1,c={};for(const i of P(a.tags,n))f(c,i,b);k(c);const[t,r]=a.description.split(" "),o={[r.trim()]:{[t.toLowerCase().trim()]:{...c}}},p=JSON.parse(JSON.stringify({paths:o}));return{loc:e,spec:p}}),"commentsToOpenApi");export{j as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var n=(e,s)=>p(e,"name",{value:s,configurable:!0});const y=require("node:fs"),h=require("node:path"),d=require("yaml"),m=require("./yamlLoc-DyGcp8YC.cjs"),l=n(e=>e&&typeof e=="object"&&"default"in e?e.default:e,"_interopDefaultCompat"),b=l(h),j=l(d);var _=Object.defineProperty,f=n((e,s)=>_(e,"name",{value:s,configurable:!0}),"s");const i=new Set(["components","externalDocs","info","openapi","paths","security","servers","tags"]);class x extends Error{static{n(this,"h")}static{f(this,"ParseError")}filePath}const P=f((e,s,u)=>{const o=y.readFileSync(e,{encoding:"utf8"}),c=b.extname(e);if(c===".yaml"||c===".yml"){const t=j.parse(o);if(t===null||typeof t!="object")return[];const a=Object.keys(t).filter(r=>!i.has(r));if(a.length>0){const r=new x(`Unexpected keys: ${a.join(", ")}`);throw r.filePath=e,r}return Object.keys(t).some(r=>i.has(r))?[{loc:m(o),spec:t}]:[]}try{return s(o,u)}catch(t){throw t.filePath=e,t}},"parseFile");module.exports=P;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var p=Object.defineProperty;var n=(e,o)=>p(e,"name",{value:o,configurable:!0});import{readFileSync as m}from"node:fs";import h from"node:path";import u from"yaml";import y from"./yamlLoc-C2tVIYaz.mjs";var d=Object.defineProperty,f=n((e,o)=>d(e,"name",{value:o,configurable:!0}),"s");const i=new Set(["components","externalDocs","info","openapi","paths","security","servers","tags"]);class b extends Error{static{n(this,"h")}static{f(this,"ParseError")}filePath}const w=f((e,o,l)=>{const s=m(e,{encoding:"utf8"}),a=h.extname(e);if(a===".yaml"||a===".yml"){const t=u.parse(s);if(t===null||typeof t!="object")return[];const c=Object.keys(t).filter(r=>!i.has(r));if(c.length>0){const r=new b(`Unexpected keys: ${c.join(", ")}`);throw r.filePath=e,r}return Object.keys(t).some(r=>i.has(r))?[{loc:y(s),spec:t}]:[]}try{return o(s,l)}catch(t){throw t.filePath=e,t}},"parseFile");export{w as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visulima/jsdoc-open-api",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.28",
|
|
4
4
|
"description": "Generates swagger doc based on JSDoc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"api",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
],
|
|
100
100
|
"dependencies": {
|
|
101
101
|
"@apidevtools/swagger-parser": "^12.1.0",
|
|
102
|
-
"@visulima/fs": "5.0.0-alpha.
|
|
102
|
+
"@visulima/fs": "5.0.0-alpha.30",
|
|
103
103
|
"comment-parser": "1.4.6",
|
|
104
104
|
"es-toolkit": "^1.46.1",
|
|
105
105
|
"yaml": "2.9.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var y=Object.defineProperty;var g=(e,s)=>y(e,"name",{value:s,configurable:!0});const p=require("node:fs"),q=require("node:path"),u=require("node:process"),D=require("@visulima/fs"),m=require("./validate-tZa-jyuN.cjs"),P=require("./jsDocumentCommentsToOpenApi-D859Nr79.cjs"),f=require("./parseFile-C7tyTcIn.cjs"),S=require("./SpecBuilder-CR4EZk93.cjs"),x=require("./swaggerJsDocumentCommentsToOpenApi-CPuUxW0D.cjs");var j=Object.defineProperty,w=g((e,s)=>j(e,"name",{value:s,configurable:!0}),"g");const v=w(e=>{e&&(console.error(e),u.exit(1))},"errorHandler");class O{static{g(this,"E")}static{w(this,"SwaggerCompilerPlugin")}assetsPath;ignore;sources;swaggerDefinition;verbose;constructor(s,t,h,i){this.assetsPath=s,this.swaggerDefinition=h,this.sources=t,this.verbose=i.verbose??!1,this.ignore=i.ignore??[]}apply(s){const t=new Set([...m.D,...this.ignore]);s.hooks.make.tapAsync("SwaggerCompilerPlugin",async(h,i)=>{console.log("Build paused, switching to swagger build");const r=new S(this.swaggerDefinition);for(const o of this.sources){const n=await D.collect(o,{extensions:[".js",".cjs",".mjs",".ts",".tsx",".jsx",".yaml",".yml"],includeDirs:!1,skip:[...t]});this.verbose&&(console.log(`Found ${String(n.length)} files in ${o}`),console.log(n)),n.forEach(a=>{this.verbose&&console.log(`Parsing file ${a}`);try{const c=f(a,P,this.verbose);r.addData(c.map(l=>l.spec));const b=f(a,x,this.verbose);r.addData(b.map(l=>l.spec))}catch(c){console.error(c),u.exit(1)}})}try{this.verbose&&(console.log("Validating swagger spec"),console.log(JSON.stringify(r,void 0,2))),await m.r(structuredClone(r))}catch(o){console.error(o.toJSON()),u.exit(1)}const{assetsPath:d}=this;p.mkdir(q.dirname(d),{recursive:!0},o=>{o&&v(o),p.writeFile(d,JSON.stringify(r,void 0,2),v)}),this.verbose&&console.log(`Written swagger spec to "${this.assetsPath}" file`),console.log("switching back to normal build"),i()})}}module.exports=O;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var v=Object.defineProperty;var g=(s,o)=>v(s,"name",{value:o,configurable:!0});import{mkdir as w,writeFile as y}from"node:fs";import{dirname as D}from"node:path";import{exit as m}from"node:process";import{collect as P}from"@visulima/fs";import{r as S,D as j}from"./validate-_k84qawx.mjs";import $ from"./jsDocumentCommentsToOpenApi-C9inxd9m.mjs";import p from"./parseFile-CtAVjmPd.mjs";import k from"./SpecBuilder-DjnDJFpv.mjs";import x from"./swaggerJsDocumentCommentsToOpenApi-Dy8pOPTp.mjs";var E=Object.defineProperty,d=g((s,o)=>E(s,"name",{value:o,configurable:!0}),"g");const u=d(s=>{s&&(console.error(s),m(1))},"errorHandler");class T{static{g(this,"E")}static{d(this,"SwaggerCompilerPlugin")}assetsPath;ignore;sources;swaggerDefinition;verbose;constructor(o,i,h,r){this.assetsPath=o,this.swaggerDefinition=h,this.sources=i,this.verbose=r.verbose??!1,this.ignore=r.ignore??[]}apply(o){const i=new Set([...j,...this.ignore]);o.hooks.make.tapAsync("SwaggerCompilerPlugin",async(h,r)=>{console.log("Build paused, switching to swagger build");const t=new k(this.swaggerDefinition);for(const e of this.sources){const n=await P(e,{extensions:[".js",".cjs",".mjs",".ts",".tsx",".jsx",".yaml",".yml"],includeDirs:!1,skip:[...i]});this.verbose&&(console.log(`Found ${String(n.length)} files in ${e}`),console.log(n)),n.forEach(a=>{this.verbose&&console.log(`Parsing file ${a}`);try{const l=p(a,$,this.verbose);t.addData(l.map(c=>c.spec));const b=p(a,x,this.verbose);t.addData(b.map(c=>c.spec))}catch(l){console.error(l),m(1)}})}try{this.verbose&&(console.log("Validating swagger spec"),console.log(JSON.stringify(t,void 0,2))),await S(structuredClone(t))}catch(e){console.error(e.toJSON()),m(1)}const{assetsPath:f}=this;w(D(f),{recursive:!0},e=>{e&&u(e),y(f,JSON.stringify(t,void 0,2),u)}),this.verbose&&console.log(`Written swagger spec to "${this.assetsPath}" file`),console.log("switching back to normal build"),r()})}}export{T as default};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use strict";var j=Object.defineProperty;var m=(s,t)=>j(s,"name",{value:t,configurable:!0});const l=require("node:fs/promises"),d=require("node:path"),S=require("node:url"),D=require("@visulima/fs"),p=require("cli-progress"),w=require("./validate-tZa-jyuN.cjs"),x=require("./jsDocumentCommentsToOpenApi-D859Nr79.cjs"),v=require("./parseFile-C7tyTcIn.cjs"),C=require("./SpecBuilder-CR4EZk93.cjs"),O=require("./swaggerJsDocumentCommentsToOpenApi-CPuUxW0D.cjs");var $=Object.defineProperty,k=m((s,t)=>$(s,"name",{value:t,configurable:!0}),"g");const F=k(async(s,t,e)=>{let o;try{let r=await import(S.pathToFileURL(d.normalize(e.config??s)).href);r?.default&&(r=r.default),o=r}catch{throw new Error(`No config file found, on: ${e.config??".openapirc.js"}
|
|
2
|
-
`)}const f=new p.MultiBar({clearOnComplete:!1,format:"{value}/{total} | {bar} | {filename}",hideCursor:!0},p.Presets.shades_grey),i=new C(o.swaggerDefinition),y=new Set([...w.D,...o.exclude]);for(const r of t){(await l.lstat(r)).isDirectory();const c=await l.realpath(r),n=await D.collect(c,{extensions:o.extensions??[".js",".cjs",".mjs",".ts",".tsx",".jsx",".yaml",".yml"],followSymlinks:o.followSymlinks??!1,match:o.include,skip:[...y]});(e.verbose??e.veryVerbose)&&console.log(`
|
|
3
|
-
Found ${String(n.length)} files in ${c}`),e.veryVerbose&&console.log(n);const b=f.create(n.length,0);n.forEach(u=>{e.verbose&&console.log(`Parsing file ${u}`),b.increment(1,{filename:c});const h=v(u,x,e.verbose);i.addData(h.map(g=>g.spec));const q=v(u,O,e.verbose);i.addData(q.map(g=>g.spec))})}e.verbose&&console.log("Validating swagger spec"),e.veryVerbose&&console.log(JSON.stringify(i,void 0,2)),await w.r(structuredClone(i));const a=e.output??"swagger.json";f.stop(),e.verbose&&console.log(`Written swagger spec to "${a}" file`),await l.mkdir(d.dirname(a),{recursive:!0}),await l.writeFile(a,JSON.stringify(i,void 0,2)),console.log(`
|
|
4
|
-
Swagger specification is ready, check the "${a}" file.`)},"generateCommand");module.exports=F;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var y=Object.defineProperty;var g=(t,i)=>y(t,"name",{value:i,configurable:!0});import{lstat as b,realpath as h,mkdir as $,writeFile as j}from"node:fs/promises";import{normalize as D,dirname as S}from"node:path";import{pathToFileURL as x}from"node:url";import{collect as k}from"@visulima/fs";import{MultiBar as C,Presets as E}from"cli-progress";import{r as F,D as O}from"./validate-_k84qawx.mjs";import V from"./jsDocumentCommentsToOpenApi-C9inxd9m.mjs";import p from"./parseFile-CtAVjmPd.mjs";import L from"./SpecBuilder-DjnDJFpv.mjs";import N from"./swaggerJsDocumentCommentsToOpenApi-Dy8pOPTp.mjs";var P=Object.defineProperty,U=g((t,i)=>P(t,"name",{value:i,configurable:!0}),"g");const G=U(async(t,i,e)=>{let r;try{let o=await import(x(D(e.config??t)).href);o?.default&&(o=o.default),r=o}catch{throw new Error(`No config file found, on: ${e.config??".openapirc.js"}
|
|
2
|
-
`)}const f=new C({clearOnComplete:!1,format:"{value}/{total} | {bar} | {filename}",hideCursor:!0},E.shades_grey),a=new L(r.swaggerDefinition),d=new Set([...O,...r.exclude]);for(const o of i){(await b(o)).isDirectory();const l=await h(o),n=await k(l,{extensions:r.extensions??[".js",".cjs",".mjs",".ts",".tsx",".jsx",".yaml",".yml"],followSymlinks:r.followSymlinks??!1,match:r.include,skip:[...d]});(e.verbose??e.veryVerbose)&&console.log(`
|
|
3
|
-
Found ${String(n.length)} files in ${l}`),e.veryVerbose&&console.log(n);const u=f.create(n.length,0);n.forEach(c=>{e.verbose&&console.log(`Parsing file ${c}`),u.increment(1,{filename:l});const w=p(c,V,e.verbose);a.addData(w.map(m=>m.spec));const v=p(c,N,e.verbose);a.addData(v.map(m=>m.spec))})}e.verbose&&console.log("Validating swagger spec"),e.veryVerbose&&console.log(JSON.stringify(a,void 0,2)),await F(structuredClone(a));const s=e.output??"swagger.json";f.stop(),e.verbose&&console.log(`Written swagger spec to "${s}" file`),await $(S(s),{recursive:!0}),await j(s,JSON.stringify(a,void 0,2)),console.log(`
|
|
4
|
-
Swagger specification is ready, check the "${s}" file.`)},"generateCommand");export{G as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var l=Object.defineProperty;var u=(s,n)=>l(s,"name",{value:n,configurable:!0});import{parse as y}from"comment-parser";import{mergeWith as f}from"es-toolkit";import{o as b}from"./customizer-COfd-Xr1.mjs";var g=Object.defineProperty,m=u((s,n)=>g(s,"name",{value:n,configurable:!0}),"p");const $=/\[\]$/,h=/^- /u,T=/Param$/u,w=/^(GET|PUT|POST|DELETE|OPTIONS|HEAD|PATCH|TRACE) \/.*$/,k=m(s=>{s.security&&(s.security=Object.keys(s.security).map(n=>({[n]:s.security[n]})))},"fixSecurityObject"),q=new Set(["array","boolean","integer","number","object","string"]),d={binary:"string",byte:"string",date:"string","date-time":"string",double:"number",float:"number",int32:"integer",int64:"integer",password:"string"},O=m(s=>{const n=s.type,a=n.endsWith("[]"),e=n.replace($,""),c=q.has(e),t=Object.keys(d).includes(e);let r;if(s.default)switch(e){case"double":case"float":case"number":{r=Number.parseFloat(s.default);break}case"int32":case"int64":case"integer":{r=Number.parseInt(s.default,10);break}default:{r=s.default;break}}let o;c?o={default:r,type:e}:t?o={default:r,format:e,type:d[e]}:o={$ref:`#/components/schemas/${e}`};let p=a?{items:{...o},type:"array"}:{...o};e===""&&(p=void 0);let i=s.description.trim().replace(h,"");return i===""&&(i=void 0),{description:i,name:s.name,rawType:n,required:!s.optional,schema:p}},"parseDescription"),P=m((s,n)=>s.map(a=>{const e=O(a);let c="";switch(e.name&&(c+=e.name),e.description&&(c+=` ${e.description.trim()}`),a.tag){case"bodyComponent":return{requestBody:{$ref:`#/components/requestBodies/${e.rawType}`}};case"bodyContent":return{requestBody:{content:{[e.name.replace(String.raw`*\/*`,"*/*")]:{schema:e.schema}}}};case"bodyDescription":return{requestBody:{description:c}};case"bodyExample":{const[t,r]=e.name.split(".");return{requestBody:{content:{[t]:{examples:{[r]:{$ref:`#/components/examples/${e.rawType}`}}}}}}}case"bodyRequired":return{requestBody:{required:!0}};case"callback":return{callbacks:{[e.name]:{$ref:`#/components/callbacks/${e.rawType}`}}};case"cookieParam":case"headerParam":case"pathParam":case"queryParam":return{parameters:[{description:e.description,in:a.tag.replace(T,""),name:e.name,required:e.required,schema:e.schema}]};case"deprecated":return{deprecated:!0};case"description":case"operationId":case"summary":return{[a.tag]:c};case"externalDocs":return{externalDocs:{description:e.description,url:e.name}};case"paramComponent":return{parameters:[{$ref:`#/components/parameters/${e.rawType}`}]};case"response":return{responses:{[e.name]:{description:e.description}}};case"responseComponent":return{responses:{[e.name]:{$ref:`#/components/responses/${e.rawType}`}}};case"responseContent":{const[t,r]=e.name.split(".");return{responses:{[t]:{content:{[r]:{schema:e.schema}}}}}}case"responseExample":{const[t,r,o]=e.name.split(".");return{responses:{[t]:{content:{[r]:{examples:{[o]:{$ref:`#/components/examples/${e.rawType}`}}}}}}}}case"responseHeader":{const[t,r]=e.name.split(".");return{responses:{[t]:{headers:{[r]:{description:e.description,schema:e.schema}}}}}}case"responseHeaderComponent":{const[t,r]=e.name.split(".");return{responses:{[t]:{headers:{[r]:{$ref:`#/components/headers/${e.rawType}`}}}}}}case"responseLink":{const[t,r]=e.name.split(".");return{responses:{[t]:{links:{[r]:{$ref:`#/components/links/${e.rawType}`}}}}}}case"security":{const[t,r]=e.name.split(".");let o=[];return r&&(o=[r]),{security:{[t]:o}}}case"server":return{servers:[{description:e.description,url:e.name}]};case"tag":return{tags:[c]};default:return{}}}),"tagsToObjects"),j=m((s,n)=>y(s,{spacing:"preserve"}).filter(a=>w.test(a.description.trim())).map(a=>{const e=a.tags.length+1,c={};for(const i of P(a.tags,n))f(c,i,b);k(c);const[t,r]=a.description.split(" "),o={[r.trim()]:{[t.toLowerCase().trim()]:{...c}}},p=JSON.parse(JSON.stringify({paths:o}));return{loc:e,spec:p}}),"commentsToOpenApi");export{j as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var l=Object.defineProperty;var u=(r,n)=>l(r,"name",{value:n,configurable:!0});const y=require("comment-parser"),b=require("es-toolkit"),f=require("./customizer-DUz3nxAJ.cjs");var g=Object.defineProperty,m=u((r,n)=>g(r,"name",{value:n,configurable:!0}),"p");const h=/\[\]$/,$=/^- /u,T=/Param$/u,w=/^(GET|PUT|POST|DELETE|OPTIONS|HEAD|PATCH|TRACE) \/.*$/,q=m(r=>{r.security&&(r.security=Object.keys(r.security).map(n=>({[n]:r.security[n]})))},"fixSecurityObject"),k=new Set(["array","boolean","integer","number","object","string"]),d={binary:"string",byte:"string",date:"string","date-time":"string",double:"number",float:"number",int32:"integer",int64:"integer",password:"string"},O=m(r=>{const n=r.type,a=n.endsWith("[]"),e=n.replace(h,""),c=k.has(e),t=Object.keys(d).includes(e);let s;if(r.default)switch(e){case"double":case"float":case"number":{s=Number.parseFloat(r.default);break}case"int32":case"int64":case"integer":{s=Number.parseInt(r.default,10);break}default:{s=r.default;break}}let o;c?o={default:s,type:e}:t?o={default:s,format:e,type:d[e]}:o={$ref:`#/components/schemas/${e}`};let p=a?{items:{...o},type:"array"}:{...o};e===""&&(p=void 0);let i=r.description.trim().replace($,"");return i===""&&(i=void 0),{description:i,name:r.name,rawType:n,required:!r.optional,schema:p}},"parseDescription"),P=m((r,n)=>r.map(a=>{const e=O(a);let c="";switch(e.name&&(c+=e.name),e.description&&(c+=` ${e.description.trim()}`),a.tag){case"bodyComponent":return{requestBody:{$ref:`#/components/requestBodies/${e.rawType}`}};case"bodyContent":return{requestBody:{content:{[e.name.replace(String.raw`*\/*`,"*/*")]:{schema:e.schema}}}};case"bodyDescription":return{requestBody:{description:c}};case"bodyExample":{const[t,s]=e.name.split(".");return{requestBody:{content:{[t]:{examples:{[s]:{$ref:`#/components/examples/${e.rawType}`}}}}}}}case"bodyRequired":return{requestBody:{required:!0}};case"callback":return{callbacks:{[e.name]:{$ref:`#/components/callbacks/${e.rawType}`}}};case"cookieParam":case"headerParam":case"pathParam":case"queryParam":return{parameters:[{description:e.description,in:a.tag.replace(T,""),name:e.name,required:e.required,schema:e.schema}]};case"deprecated":return{deprecated:!0};case"description":case"operationId":case"summary":return{[a.tag]:c};case"externalDocs":return{externalDocs:{description:e.description,url:e.name}};case"paramComponent":return{parameters:[{$ref:`#/components/parameters/${e.rawType}`}]};case"response":return{responses:{[e.name]:{description:e.description}}};case"responseComponent":return{responses:{[e.name]:{$ref:`#/components/responses/${e.rawType}`}}};case"responseContent":{const[t,s]=e.name.split(".");return{responses:{[t]:{content:{[s]:{schema:e.schema}}}}}}case"responseExample":{const[t,s,o]=e.name.split(".");return{responses:{[t]:{content:{[s]:{examples:{[o]:{$ref:`#/components/examples/${e.rawType}`}}}}}}}}case"responseHeader":{const[t,s]=e.name.split(".");return{responses:{[t]:{headers:{[s]:{description:e.description,schema:e.schema}}}}}}case"responseHeaderComponent":{const[t,s]=e.name.split(".");return{responses:{[t]:{headers:{[s]:{$ref:`#/components/headers/${e.rawType}`}}}}}}case"responseLink":{const[t,s]=e.name.split(".");return{responses:{[t]:{links:{[s]:{$ref:`#/components/links/${e.rawType}`}}}}}}case"security":{const[t,s]=e.name.split(".");let o=[];return s&&(o=[s]),{security:{[t]:o}}}case"server":return{servers:[{description:e.description,url:e.name}]};case"tag":return{tags:[c]};default:return{}}}),"tagsToObjects"),x=m((r,n)=>y.parse(r,{spacing:"preserve"}).filter(a=>w.test(a.description.trim())).map(a=>{const e=a.tags.length+1,c={};for(const i of P(a.tags,n))b.mergeWith(c,i,f.o);q(c);const[t,s]=a.description.split(" "),o={[s.trim()]:{[t.toLowerCase().trim()]:{...c}}},p=JSON.parse(JSON.stringify({paths:o}));return{loc:e,spec:p}}),"commentsToOpenApi");module.exports=x;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var n=(e,s)=>p(e,"name",{value:s,configurable:!0});const y=require("node:fs"),h=require("node:path"),d=require("yaml"),m=require("./yamlLoc-DyGcp8YC.cjs"),l=n(e=>e&&typeof e=="object"&&"default"in e?e.default:e,"_interopDefaultCompat"),_=l(h),b=l(d);var j=Object.defineProperty,f=n((e,s)=>j(e,"name",{value:s,configurable:!0}),"s");const i=new Set(["components","externalDocs","info","openapi","paths","security","servers","tags"]);class x extends Error{static{n(this,"h")}static{f(this,"ParseError")}filePath}const P=f((e,s,u)=>{const o=y.readFileSync(e,{encoding:"utf8"}),a=_.extname(e);if(a===".yaml"||a===".yml"){const t=b.parse(o),c=Object.keys(t).filter(r=>!i.has(r));if(c.length>0){const r=new x(`Unexpected keys: ${c.join(", ")}`);throw r.filePath=e,r}return Object.keys(t).some(r=>i.has(r))?[{loc:m(o),spec:t}]:[]}try{return s(o,u)}catch(t){throw t.filePath=e,t}},"parseFile");module.exports=P;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var p=Object.defineProperty;var n=(e,o)=>p(e,"name",{value:o,configurable:!0});import{readFileSync as m}from"node:fs";import h from"node:path";import y from"yaml";import u from"./yamlLoc-C2tVIYaz.mjs";var d=Object.defineProperty,f=n((e,o)=>d(e,"name",{value:o,configurable:!0}),"s");const i=new Set(["components","externalDocs","info","openapi","paths","security","servers","tags"]);class x extends Error{static{n(this,"h")}static{f(this,"ParseError")}filePath}const w=f((e,o,l)=>{const s=m(e,{encoding:"utf8"}),a=h.extname(e);if(a===".yaml"||a===".yml"){const t=y.parse(s),c=Object.keys(t).filter(r=>!i.has(r));if(c.length>0){const r=new x(`Unexpected keys: ${c.join(", ")}`);throw r.filePath=e,r}return Object.keys(t).some(r=>i.has(r))?[{loc:u(s),spec:t}]:[]}try{return o(s,l)}catch(t){throw t.filePath=e,t}},"parseFile");export{w as default};
|