@powerduck/tree 0.7.17 → 0.7.18
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/dist/adapters/index.cjs +1 -1
- package/dist/adapters/index.js +1 -1
- package/dist/chunk-FUR7BOZE.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-KPRGJSJS.js +0 -1
package/dist/adapters/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var F=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var pe=(e,t)=>{for(var o in t)F(e,o,{get:t[o],enumerable:!0})},me=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ce(t))!ue.call(e,n)&&n!==o&&F(e,n,{get:()=>t[n],enumerable:!(r=de(t,n))||r.enumerable});return e};var fe=e=>me(F({},"__esModule",{value:!0}),e);var We={};pe(We,{buildDocTree:()=>se,buildOpenApiTree:()=>V,buildSchemaTree:()=>ne,findSchemaNodeByPath:()=>te,formatSchemaType:()=>re});module.exports=fe(We);function*ge(e,t=1/0){let o=new Set,r=[];for(let n=e.length-1;n>=0;n--)r.push({node:e[n],depth:1});for(;r.length;){let n=r.pop();if(o.has(n.node)||n.depth>t)continue;o.add(n.node),yield n;let c=n.node.children??[];for(let a=c.length-1;a>=0;a--)r.push({node:c[a],parent:n,depth:n.depth+1})}}var le=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function g(e){return[...e].sort((t,o)=>{let r=(t.order??Number.MAX_SAFE_INTEGER)-(o.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(r)?0:r)||le.compare(t.name,o.name)||t.id.localeCompare(o.id)})}function v(e){return Array.from(ge(e),({node:t,depth:o})=>({node:t,depth:o}))}function J(e,t,o){let r=new Map;for(let s of e)r.has(s.name)?o.push(`Duplicate tag "${s.name}" was ignored.`):r.set(s.name,s);let n=new Map;for(let s of r.values())s.parent&&!r.has(s.parent)&&o.push(`Tag "${s.name}" references unknown parent "${s.parent}", treating as root.`),n.set(s.name,s.parent&&r.has(s.parent)?s.parent:null);let c=new Set;for(let s of r.keys()){let u=new Set,i=s;for(;i!==null&&!c.has(i);){if(u.has(i)){o.push(`Circular tag reference detected at "${i}". Breaking cycle.`),n.set(i,null);break}u.add(i),i=n.get(i)??null}for(let p of u)c.add(p)}let a=new Map(Array.from(r,([s,u])=>[s,t(u)])),d=[];for(let[s,u]of a){let i=n.get(s);if(i==null)d.push(u);else{let p=a.get(i);(p.children??(p.children=[])).push(u)}}for(let s of a.values())s.children&&(s.children=g(s.children));return g(d)}var z=["get","put","post","delete","options","head","patch","trace"],he={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Te(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function P(e){return typeof e=="boolean"?e:void 0}function $(e){return Array.isArray(e)?e:void 0}function C(e,t){return t?!1:P(e["x-scalar-ignore"])===!0||P(e["x-internal"])===!0}function A(e){return Te(e["x-order"])}function Ne(e){return w(e["x-displayName"])}function ye(e){let t=N(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let c=N(n);if(c)for(let a of z){let d=c[a];if(d==null)continue;let s=N(d);if(!s)continue;let u=w(s.operationId),i=w(s.summary),p=$(s.tags)?.filter(O=>typeof O=="string").map(O=>O.trim()).filter(O=>O.length>0)??[],m=i??u??`${a.toUpperCase()} ${r}`,f=u??`${a}:${r}`,T=`/paths/${encodeURIComponent(r)}/${a}`;o.push({id:f,path:r,method:a,name:m,summary:i,operationId:u,deprecated:P(s.deprecated)===!0,tags:p,pointer:T,raw:s})}}return o}function Oe(e){let t=$(e.tags);if(!t)return[];let o=[];for(let r of t){let n=N(r),c=w(n?.name);!c||!n||o.push({name:c,displayName:Ne(n)??c,description:w(n.description),parent:w(n.parent),order:A(n),raw:n})}return o}function be(e){return e.some(t=>t.parent!==void 0)}function U(e){return{id:`op:root:${e.id}`,name:e.name,order:A(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function we(e,t,o,r){let n=new Map,c=[];for(let i of t)if(!C(i.raw,o.showInternal)){if(i.tags.length===0){c.push(i);continue}for(let p of i.tags){let m=n.get(p)??[];m.push(i),n.set(p,m)}}let a=i=>{let m=(n.get(i.name)??[]).map(f=>({id:`op:${i.name}:${f.id}`,name:f.name,order:A(f.raw),metadata:{method:f.method,path:f.path,operationId:f.operationId,deprecated:f.deprecated,summary:f.summary,pointer:f.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${i.name}`,name:i.displayName,order:i.order,children:g(m),metadata:{source:"oas32-parent",kind:"tag"}}},d=new Set(e.map(i=>i.name)),s=[...e];for(let i of n.keys())d.has(i)||s.push({name:i,displayName:i,raw:{}});let u=J(s,a,r);return g([...u,...c.map(U)])}function ke(e){let t=$(e["x-tagGroups"]);if(!t)return[];let o=(r,n)=>{let c=N(r),a=w(c?.name),d=$(c?.tags)?.filter(u=>typeof u=="string").map(u=>u.trim()).filter(u=>u.length>0)??[];if(!a)return null;let s=$(c?.groups)?.map((u,i)=>o(u,i)).filter(u=>u!==null)??[];return{name:a,tags:d,groups:s.length>0?s:void 0,order:A(c??{})??n}};return t.map((r,n)=>o(r,n)).filter(r=>r!==null)}function De(e,t,o,r){let n=new Map;for(let i of t)n.set(i.name,i.displayName);let c=new Map,a=[];for(let i of o)if(!C(i.raw,r.showInternal)){if(i.tags.length===0){a.push(i);continue}for(let p of i.tags){let m=c.get(p)??[];m.push(i),c.set(p,m)}}let d=i=>(c.get(i)??[]).map(m=>({id:`op:${i}:${m.id}`,name:m.name,order:A(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),s=i=>({id:`tag:${i}`,name:n.get(i)??i,children:g(d(i)),metadata:{source:"tag-group",kind:"tag"}}),u=i=>{let p=[];for(let m of i.tags)c.get(m)?.length&&p.push(s(m));for(let m of i.groups??[])p.push(u(m));return{id:`tag-group:${i.name}`,name:i.name,order:i.order,children:g(p),metadata:{source:"tag-group",kind:"tag-group"}}};return g([...e.map(u),...a.map(U)])}function Ae(e,t,o){let r=new Map,n=[],c=new Map;for(let s=0;s<e.length;s+=1){let u=e[s];c.set(u.name,u.order??s)}for(let s of t)if(!C(s.raw,o.showInternal)){if(s.tags.length===0){n.push(s);continue}for(let u of s.tags){let i=r.get(u)??[];i.push(s),r.set(u,i)}}let a=new Map;for(let s of e)a.set(s.name,s.displayName);let d=[];for(let[s,u]of r){let i=u.map(p=>({id:`op:${s}:${p.id}`,name:p.name,order:A(p.raw),metadata:{method:p.method,path:p.path,operationId:p.operationId,deprecated:p.deprecated,summary:p.summary,pointer:p.pointer,source:"tag",kind:"operation"}}));d.push({id:`tag:${s}`,name:a.get(s)??s,order:c.get(s),children:g(i),metadata:{source:"tag",kind:"tag"}})}return g([...d,...n.map(U)])}function Re(e,t){if(!t.showComponents)return;let o=N(e.components),r=N(o?.schemas);if(!r)return;let n=[];for(let[c,a]of Object.entries(r)){let d=N(a);!d||C(d,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:A(d),metadata:{pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"section",kind:"section",section:"components"}}}function Se(e,t){if(!t.showWebhooks)return;let o=N(e.webhooks);if(!o)return;let r=[];for(let[n,c]of Object.entries(o)){let a=N(c);if(a)for(let d of z){let s=a[d],u=N(s);if(!u||C(u,t.showInternal))continue;let i=w(u.operationId),p=w(u.summary),m=p??i??`${d.toUpperCase()} ${n}`;r.push({id:`webhook:${n}:${d}`,name:m,order:A(u),metadata:{method:d,path:n,operationId:i,deprecated:P(u.deprecated)===!0,summary:p,pointer:`/webhooks/${encodeURIComponent(n)}/${d}`,source:"tag",kind:"webhook"}})}}if(r.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:g(r),metadata:{source:"section",kind:"section",section:"webhooks"}}}function V(e,t={}){let o={...he,...t},r=[],n=N(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=ye(n),a=Oe(n),d;if(be(a))d=we(a,c,o,r);else{let m=ke(n);m.length>0?d=De(m,a,c,o):d=Ae(a,c,o)}let s=Se(n,o),u=Re(n,o),p=[{id:"section:apis",name:"APIs",children:d,metadata:{kind:"section",source:"section",section:"apis"},order:0},...s?[s]:[],...u?[u]:[]];return{root:{id:"root",name:"OpenAPI",children:g(p),metadata:{kind:"root"}},warnings:r}}var Y={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},j={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Q=new Set(["string","number","integer","boolean","null"]);function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function L(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Z(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function Ie(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(o=>typeof o=="string"))return t}function xe(e){return e?Array.isArray(e)?e.every(t=>Q.has(t)):Q.has(e):!1}function $e(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function ee(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,o=>`\\${o}`)).join(".")||"root"}function B(e,t,o,r,n,c){n.remaining--;let a=Ie(t),d=L(t.format),s=L(t.description),u=Z(t.deprecated)===!0,i=$e(a),p={jsonPath:o,type:a,format:d,required:c,deprecated:u,description:s,kind:i},m=L(t.$ref);if(m){if(n.refStack.has(m))return n.warnings.push(`Circular $ref detected at ${o.join(".")}: ${m}. Breaking recursion.`),{id:S(o),name:e,metadata:{...p,kind:"ref",isLeaf:!0}};n.refStack.add(m)}let f,T=xe(a),O=n.activeSchemas.has(t);if(O&&n.warnings.push(`Circular schema object detected at ${S(o)}.`),O||r>=n.options.maxDepth||n.remaining<=0)return m&&n.refStack.delete(m),{id:S(o),name:e,metadata:{...p,isLeaf:!0}};n.activeSchemas.add(t);let k=M(t.properties);if(k){let R=K(t.required)??[],y=new Set(R.filter(b=>typeof b=="string")),q=[];for(let[b,I]of Object.entries(k)){if(n.remaining<=0)break;let x=M(I);x&&(!n.options.showDeprecated&&Z(x.deprecated)===!0||q.push(B(b,x,[...o,"properties",b],r+1,n,y.has(b))))}f=[...f??[],...g(q)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&a==="array"){let R=M(t.items);if(R){let y=B("items",R,[...o,"items"],r+1,n,!1);f=[...f??[],y],T=!1}else p.hasItems=!1}if(n.options.expandCombinators){let R=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:y,kind:q}of R){if(n.remaining<=0)break;let b=K(t[y]);if(!b?.length)continue;n.remaining--;let I=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ae=b[D],X=M(ae);if(!X){n.remaining--,I.push({id:S([...o,y,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...o,y,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(B(`[${D}]`,X,[...o,y,String(D)],r+1,n,!1))}let x={id:S([...o,y]),name:y,children:g(I),metadata:{jsonPath:[...o,y],kind:q}};f=[...f??[],x],T=!1}}return K(t.enum)?.length&&!f?.length&&(p.kind="enum",T=!0),m&&n.refStack.delete(m),n.activeSchemas.delete(t),{id:S(o),name:e,order:Object.prototype.hasOwnProperty.call(Y,e)?Y[e]:void 0,metadata:{...p,isLeaf:T},children:f}}function ne(e,t={}){let o={...j,...t};o.maxDepth=Number.isFinite(o.maxDepth)?Math.min(128,Math.max(0,Math.trunc(o.maxDepth))):j.maxDepth,o.maxNodes=Number.isFinite(o.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(o.maxNodes))):j.maxNodes;let r=[],n=M(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let c={options:o,warnings:r,refStack:new Set,activeSchemas:new Set,remaining:o.maxNodes},a=B("root",n,[],0,c,!0);return c.remaining<=0&&r.push(`Schema node limit (${o.maxNodes}) reached; remaining branches were omitted.`),{root:a,warnings:r}}function te(e,t){if(t.length===0)return e;let o=JSON.stringify(t),r=[e],n=new Set;for(let c=0;c<r.length;c++){let a=r[c];if(!a||n.has(a))continue;if(n.add(a),JSON.stringify(a.metadata?.jsonPath)===o)return a;for(let s of a.children??[])r.push(s)}}function re(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${ee(e.type)} (${e.format})`:ee(e.type)}var Ce=["get","put","post","delete","options","head","patch","trace"],Me={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function E(e){return typeof e=="boolean"?e:void 0}function H(e){return Array.isArray(e)?e:void 0}function _(e,t){return t?!1:E(e["x-scalar-ignore"])===!0||E(e["x-internal"])===!0}function W(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function Ee(e){return h(e["x-displayName"])}function Ge(e,t){let o=[];for(let r of e){let n=l(r);if(!n)continue;let c=h(n.name),a=h(n.in);if(!c||!a)continue;let d=`${a}:${c}`;o.push({id:`${t}/parameters/${encodeURIComponent(d)}`,name:c,metadata:{paramIn:a,required:E(n.required)===!0,description:h(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return g(o)}function qe(e,t){let o=[];for(let[r,n]of Object.entries(e)){let c=l(n);if(!c)continue;let a=h(c.description),d=l(c.content),s=[];if(d)for(let[u]of Object.entries(d))s.push({id:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,name:u,metadata:{contentType:u,pointer:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,kind:"content"}});o.push({id:`${t}/responses/${encodeURIComponent(r)}`,name:r,metadata:{statusCode:r,description:a,pointer:`${t}/responses/${encodeURIComponent(r)}`,kind:"response"},children:s.length>0?s:void 0})}return g(o)}function Je(e,t){let o=[],r=H(e.parameters);if(r?.length){let a=Ge(r,t);a.length>0&&o.push({id:`${t}/parameters`,name:"Parameters",children:a,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=l(e.requestBody);if(n){let a=l(n.content),d=[];if(a)for(let[s]of Object.entries(a))d.push({id:`${t}/requestBody/content/${encodeURIComponent(s)}`,name:s,metadata:{contentType:s,pointer:`${t}/requestBody/content/${encodeURIComponent(s)}`,kind:"content"}});o.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:h(n.description),required:E(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:d.length>0?d:void 0})}let c=l(e.responses);if(c){let a=qe(c,t);a.length>0&&o.push({id:`${t}/responses`,name:"Responses",children:a,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return o}function Pe(e){let t=l(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let c=l(n);if(c)for(let a of Ce){let d=c[a],s=l(d);if(!s)continue;let u=h(s.operationId),i=h(s.summary),p=h(s.description),m=H(s.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],f=i??u??`${a.toUpperCase()} ${r}`,T=u??`${a}:${r}`,O=`/paths/${encodeURIComponent(r)}/${a}`;o.push({id:T,path:r,method:a,name:f,summary:i,description:p,operationId:u,deprecated:E(s.deprecated)===!0,tags:m,pointer:O,raw:s})}}return o}function Be(e){let t=H(e.tags);if(!t)return[];let o=[];for(let r of t){let n=l(r),c=h(n?.name);!c||!n||o.push({name:c,displayName:Ee(n)??c,description:h(n.description),parent:h(n.parent),order:W(n)})}return o}function _e(e){return e.some(t=>t.parent!==void 0)}function G(e,t,o,r){let n=t.expandOperationDetails?Je(e.raw,e.pointer):void 0;return{id:`op:${r}:${e.id}`,name:e.name,order:W(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:o,kind:"operation"},children:n&&n.length>0?n:void 0}}function Fe(e,t,o,r){let n=new Map;for(let i of t){if(_(i.raw,o.showInternal))continue;let p=i.tags.length>0?i.tags:["Other"];for(let m of p){let f=n.get(m)??[];f.push(i),n.set(m,f)}}let c=i=>{let m=(n.get(i.name)??[]).map(f=>G(f,o,"oas32-parent",i.name));return{id:`tag:${i.name}`,name:i.displayName,order:i.order,children:g(m),metadata:{description:i.description,source:"oas32-parent",kind:"tag"}}},a=new Set(e.map(i=>i.name)),d=[...e];for(let i of n.keys())i!=="Other"&&!a.has(i)&&d.push({name:i,displayName:i});let s=J(d,c,r),u=n.get("Other")??[];if(u.length>0&&!e.some(i=>i.name==="Other")){let i=u.map(p=>G(p,o,"fallback","Other"));s.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(i),metadata:{source:"fallback",kind:"tag"}})}return g(s)}function Ue(e,t,o){let r=new Map,n=new Map;for(let d=0;d<e.length;d+=1)n.set(e[d].name,d);for(let d of t){if(_(d.raw,o.showInternal))continue;let s=d.tags.length>0?d.tags:["Other"];for(let u of s){let i=r.get(u)??[];i.push(d),r.set(u,i)}}let c=new Map;for(let d of e)c.set(d.name,d.displayName);let a=[];for(let[d,s]of r){let u=s.map(i=>G(i,o,"tag",d));a.push({id:`tag:${d}`,name:c.get(d)??d,order:d==="Other"?Number.MAX_SAFE_INTEGER:n.get(d),children:g(u),metadata:{source:"tag",kind:"tag"}})}return g(a)}function je(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function oe(e,t,o=0,r={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(o>=128||r.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];r.active.add(e);let n=[];for(let c of e){if(r.remaining<=0){r.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),r.warned=!0;break}let a=l(c);if(!a||typeof a.name!="string")continue;r.remaining--;let d={name:a.name};Array.isArray(a.tags)&&(d.tags=a.tags.filter(s=>typeof s=="string")),Array.isArray(a.groups)&&(d.groups=oe(a.groups,t,o+1,r)),n.push(d)}return r.active.delete(e),n}function ie(e,t,o,r,n,c=0){let a=[];if(e.tags)for(let d of e.tags){let s=t.get(d);if(!s||s.length===0)continue;let u=s.map(i=>G(i,n,"tag-group",d));a.push({id:`tag:${d}`,name:o.get(d)??d,order:r.get(d),children:g(u),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let d of e.groups)a.push(ie(d,t,o,r,n,c+1));return{id:`tag-group:${e.name}`,name:e.name,order:c*1e3,children:g(a),metadata:{source:"tag-group",kind:"tag-group"}}}function Le(e,t,o,r,n){let c=new Map,a=new Map,d=new Map;for(let p=0;p<t.length;p+=1)a.set(t[p].name,p),d.set(t[p].name,t[p].displayName);for(let p of o){if(_(p.raw,r.showInternal))continue;let m=p.tags.length>0?p.tags:["Other"];for(let f of m){let T=c.get(f)??[];T.push(p),c.set(f,T)}}let u=oe(e["x-tagGroups"],n).map(p=>ie(p,c,d,a,r)),i=c.get("Other");if(i&&i.length>0){let p=i.map(m=>G(m,r,"fallback","Other"));u.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(p),metadata:{source:"fallback",kind:"tag"}})}return g(u)}function Ke(e,t){if(!t.showComponents)return;let o=l(e.components),r=l(o?.schemas);if(!r)return;let n=[];for(let[c,a]of Object.entries(r)){let d=l(a);!d||_(d,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:W(d),metadata:{description:h(d.description),pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"tag",kind:"component"}}}function He(e){let t=new Map,o=v(e);for(let r=o.length-1;r>=0;r--){let n=o[r].node,c=n.children?.map(d=>t.get(d)).filter(Boolean),a=(n.metadata?.kind==="operation"?1:0)+(c?.reduce((d,s)=>d+(s.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:c,metadata:{...n.metadata,operationCount:a}})}return e.map(r=>t.get(r))}function se(e,t={}){let o={...Me,...t},r=[],n=l(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=Pe(n),a=Be(n),d;_e(a)?d=Fe(a,c,o,r):je(n)?d=Le(n,a,c,o,r):d=Ue(a,c,o);let s=Ke(n,o),u=He([...d,...s?[s]:[]]);return{root:{id:"root",name:"API Documentation",children:g(u),metadata:{kind:"root"}},warnings:r}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,findSchemaNodeByPath,formatSchemaType});
|
|
1
|
+
"use strict";var F=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var pe=(e,t)=>{for(var o in t)F(e,o,{get:t[o],enumerable:!0})},me=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ce(t))!ue.call(e,n)&&n!==o&&F(e,n,{get:()=>t[n],enumerable:!(r=de(t,n))||r.enumerable});return e};var fe=e=>me(F({},"__esModule",{value:!0}),e);var We={};pe(We,{buildDocTree:()=>se,buildOpenApiTree:()=>V,buildSchemaTree:()=>ne,findSchemaNodeByPath:()=>te,formatSchemaType:()=>re});module.exports=fe(We);function*ge(e,t=1/0){let o=new Set,r=[];for(let n=e.length-1;n>=0;n--)r.push({node:e[n],depth:1});for(;r.length;){let n=r.pop();if(o.has(n.node)||n.depth>t)continue;o.add(n.node),yield n;let d=n.node.children??[];for(let s=d.length-1;s>=0;s--)r.push({node:d[s],parent:n,depth:n.depth+1})}}var le=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function g(e){return[...e].sort((t,o)=>{let r=(t.order??Number.MAX_SAFE_INTEGER)-(o.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(r)?0:r)||le.compare(t.name,o.name)||t.id.localeCompare(o.id)})}function v(e){return Array.from(ge(e),({node:t,depth:o})=>({node:t,depth:o}))}function J(e,t,o){let r=new Map;for(let c of e)r.has(c.name)?o.push(`Duplicate tag "${c.name}" was ignored.`):r.set(c.name,c);let n=new Map;for(let c of r.values())c.parent&&!r.has(c.parent)&&o.push(`Tag "${c.name}" references unknown parent "${c.parent}", treating as root.`),n.set(c.name,c.parent&&r.has(c.parent)?c.parent:null);let d=new Set;for(let c of r.keys()){let p=new Set,i=c;for(;i!==null&&!d.has(i);){if(p.has(i)){o.push(`Circular tag reference detected at "${i}". Breaking cycle.`),n.set(i,null);break}p.add(i),i=n.get(i)??null}for(let u of p)d.add(u)}let s=new Map(Array.from(r,([c,p])=>[c,t(p)])),a=[];for(let[c,p]of s){let i=n.get(c);if(i==null)a.push(p);else{let u=s.get(i);(u.children??(u.children=[])).push(p)}}for(let c of s.values())c.children&&(c.children=g(c.children));return g(a)}var z=["get","put","post","delete","options","head","patch","trace"],he={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Te(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function P(e){return typeof e=="boolean"?e:void 0}function $(e){return Array.isArray(e)?e:void 0}function C(e,t){return t?!1:P(e["x-scalar-ignore"])===!0||P(e["x-internal"])===!0}function A(e){return Te(e["x-order"])}function Ne(e){return w(e["x-displayName"])}function ye(e){let t=y(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let d=y(n);if(d)for(let s of z){let a=d[s];if(a==null)continue;let c=y(a);if(!c)continue;let p=w(c.operationId),i=w(c.summary),u=$(c.tags)?.filter(l=>typeof l=="string").map(l=>l.trim()).filter(l=>l.length>0)??[],m=i??p??`${s.toUpperCase()} ${r}`,f=p??`${s}:${r}`,T=`/paths/${encodeURIComponent(r)}/${s}`;o.push({id:f,path:r,method:s,name:m,summary:i,operationId:p,deprecated:P(c.deprecated)===!0,tags:u,pointer:T,raw:c})}}return o}function Oe(e){let t=$(e.tags);if(!t)return[];let o=[];for(let r of t){let n=y(r),d=w(n?.name);!d||!n||o.push({name:d,displayName:Ne(n)??d,description:w(n.description),parent:w(n.parent),order:A(n),raw:n})}return o}function be(e){return e.some(t=>t.parent!==void 0)}function U(e){return{id:`op:root:${e.id}`,name:e.name,order:A(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function we(e,t,o,r){let n=new Map,d=[];for(let i of t)if(!C(i.raw,o.showInternal)){if(i.tags.length===0){d.push(i);continue}for(let u of i.tags){let m=n.get(u)??[];m.push(i),n.set(u,m)}}let s=i=>{let m=(n.get(i.name)??[]).map(f=>({id:`op:${i.name}:${f.id}`,name:f.name,order:A(f.raw),metadata:{method:f.method,path:f.path,operationId:f.operationId,deprecated:f.deprecated,summary:f.summary,pointer:f.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${i.name}`,name:i.displayName,order:i.order,children:g(m),metadata:{source:"oas32-parent",kind:"tag"}}},a=new Set(e.map(i=>i.name)),c=[...e];for(let i of n.keys())a.has(i)||c.push({name:i,displayName:i,raw:{}});let p=J(c,s,r);return g([...p,...d.map(U)])}function ke(e){let t=$(e["x-tagGroups"]);if(!t)return[];let o=(r,n)=>{let d=y(r),s=w(d?.name),a=$(d?.tags)?.filter(p=>typeof p=="string").map(p=>p.trim()).filter(p=>p.length>0)??[];if(!s)return null;let c=$(d?.groups)?.map((p,i)=>o(p,i)).filter(p=>p!==null)??[];return{name:s,tags:a,groups:c.length>0?c:void 0,order:A(d??{})??n}};return t.map((r,n)=>o(r,n)).filter(r=>r!==null)}function De(e,t,o,r){let n=new Map;for(let i of t)n.set(i.name,i.displayName);let d=new Map,s=[];for(let i of o)if(!C(i.raw,r.showInternal)){if(i.tags.length===0){s.push(i);continue}for(let u of i.tags){let m=d.get(u)??[];m.push(i),d.set(u,m)}}let a=i=>(d.get(i)??[]).map(m=>({id:`op:${i}:${m.id}`,name:m.name,order:A(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),c=i=>({id:`tag:${i}`,name:n.get(i)??i,children:g(a(i)),metadata:{source:"tag-group",kind:"tag"}}),p=i=>{let u=[];for(let m of i.tags)d.get(m)?.length&&u.push(c(m));for(let m of i.groups??[])u.push(p(m));return{id:`tag-group:${i.name}`,name:i.name,order:i.order,children:g(u),metadata:{source:"tag-group",kind:"tag-group"}}};return g([...e.map(p),...s.map(U)])}function Ae(e,t,o){let r=new Map,n=[],d=new Map;for(let u=0;u<e.length;u+=1){let m=e[u];d.set(m.name,m.order??u)}for(let u of t)if(!C(u.raw,o.showInternal)){if(u.tags.length===0){n.push(u);continue}for(let m of u.tags){let f=r.get(m)??[];f.push(u),r.set(m,f)}}let s=new Map;for(let u of e)s.set(u.name,u.displayName);let a=(u,m)=>{let T=(r.get(u)??[]).map(l=>({id:`op:${u}:${l.id}`,name:l.name,order:A(l.raw),metadata:{method:l.method,path:l.path,operationId:l.operationId,deprecated:l.deprecated,summary:l.summary,pointer:l.pointer,source:"tag",kind:"operation"}}));return{id:`tag:${u}`,name:s.get(u)??u,order:d.get(u)??m,children:g(T),metadata:{source:"tag",kind:"tag"}}},c=[],p=new Set;e.forEach((u,m)=>{p.add(u.name),c.push(a(u.name,m))});let i=e.length;for(let u of r.keys())p.has(u)||(c.push(a(u,i)),i+=1);return g([...c,...n.map(U)])}function Re(e,t){if(!t.showComponents)return;let o=y(e.components),r=y(o?.schemas);if(!r)return;let n=[];for(let[d,s]of Object.entries(r)){let a=y(s);!a||C(a,t.showInternal)||n.push({id:`schema:${d}`,name:d,order:A(a),metadata:{pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"section",kind:"section",section:"components"}}}function Se(e,t){if(!t.showWebhooks)return;let o=y(e.webhooks);if(!o)return;let r=[];for(let[n,d]of Object.entries(o)){let s=y(d);if(s)for(let a of z){let c=s[a],p=y(c);if(!p||C(p,t.showInternal))continue;let i=w(p.operationId),u=w(p.summary),m=u??i??`${a.toUpperCase()} ${n}`;r.push({id:`webhook:${n}:${a}`,name:m,order:A(p),metadata:{method:a,path:n,operationId:i,deprecated:P(p.deprecated)===!0,summary:u,pointer:`/webhooks/${encodeURIComponent(n)}/${a}`,source:"tag",kind:"webhook"}})}}if(r.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:g(r),metadata:{source:"section",kind:"section",section:"webhooks"}}}function V(e,t={}){let o={...he,...t},r=[],n=y(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=ye(n),s=Oe(n),a;if(be(s))a=we(s,d,o,r);else{let m=ke(n);m.length>0?a=De(m,s,d,o):a=Ae(s,d,o)}let c=Se(n,o),p=Re(n,o),u=[{id:"section:apis",name:"APIs",children:a,metadata:{kind:"section",source:"section",section:"apis"},order:0},...c?[c]:[],...p?[p]:[]];return{root:{id:"root",name:"OpenAPI",children:g(u),metadata:{kind:"root"}},warnings:r}}var Y={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},j={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Q=new Set(["string","number","integer","boolean","null"]);function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function L(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Z(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function Ie(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(o=>typeof o=="string"))return t}function xe(e){return e?Array.isArray(e)?e.every(t=>Q.has(t)):Q.has(e):!1}function $e(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function ee(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,o=>`\\${o}`)).join(".")||"root"}function B(e,t,o,r,n,d){n.remaining--;let s=Ie(t),a=L(t.format),c=L(t.description),p=Z(t.deprecated)===!0,i=$e(s),u={jsonPath:o,type:s,format:a,required:d,deprecated:p,description:c,kind:i},m=L(t.$ref);if(m){if(n.refStack.has(m))return n.warnings.push(`Circular $ref detected at ${o.join(".")}: ${m}. Breaking recursion.`),{id:S(o),name:e,metadata:{...u,kind:"ref",isLeaf:!0}};n.refStack.add(m)}let f,T=xe(s),l=n.activeSchemas.has(t);if(l&&n.warnings.push(`Circular schema object detected at ${S(o)}.`),l||r>=n.options.maxDepth||n.remaining<=0)return m&&n.refStack.delete(m),{id:S(o),name:e,metadata:{...u,isLeaf:!0}};n.activeSchemas.add(t);let k=M(t.properties);if(k){let R=K(t.required)??[],O=new Set(R.filter(b=>typeof b=="string")),q=[];for(let[b,I]of Object.entries(k)){if(n.remaining<=0)break;let x=M(I);x&&(!n.options.showDeprecated&&Z(x.deprecated)===!0||q.push(B(b,x,[...o,"properties",b],r+1,n,O.has(b))))}f=[...f??[],...g(q)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&s==="array"){let R=M(t.items);if(R){let O=B("items",R,[...o,"items"],r+1,n,!1);f=[...f??[],O],T=!1}else u.hasItems=!1}if(n.options.expandCombinators){let R=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:O,kind:q}of R){if(n.remaining<=0)break;let b=K(t[O]);if(!b?.length)continue;n.remaining--;let I=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ae=b[D],X=M(ae);if(!X){n.remaining--,I.push({id:S([...o,O,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...o,O,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(B(`[${D}]`,X,[...o,O,String(D)],r+1,n,!1))}let x={id:S([...o,O]),name:O,children:g(I),metadata:{jsonPath:[...o,O],kind:q}};f=[...f??[],x],T=!1}}return K(t.enum)?.length&&!f?.length&&(u.kind="enum",T=!0),m&&n.refStack.delete(m),n.activeSchemas.delete(t),{id:S(o),name:e,order:Object.prototype.hasOwnProperty.call(Y,e)?Y[e]:void 0,metadata:{...u,isLeaf:T},children:f}}function ne(e,t={}){let o={...j,...t};o.maxDepth=Number.isFinite(o.maxDepth)?Math.min(128,Math.max(0,Math.trunc(o.maxDepth))):j.maxDepth,o.maxNodes=Number.isFinite(o.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(o.maxNodes))):j.maxNodes;let r=[],n=M(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let d={options:o,warnings:r,refStack:new Set,activeSchemas:new Set,remaining:o.maxNodes},s=B("root",n,[],0,d,!0);return d.remaining<=0&&r.push(`Schema node limit (${o.maxNodes}) reached; remaining branches were omitted.`),{root:s,warnings:r}}function te(e,t){if(t.length===0)return e;let o=JSON.stringify(t),r=[e],n=new Set;for(let d=0;d<r.length;d++){let s=r[d];if(!s||n.has(s))continue;if(n.add(s),JSON.stringify(s.metadata?.jsonPath)===o)return s;for(let c of s.children??[])r.push(c)}}function re(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${ee(e.type)} (${e.format})`:ee(e.type)}var Ce=["get","put","post","delete","options","head","patch","trace"],Me={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function h(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function N(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function E(e){return typeof e=="boolean"?e:void 0}function H(e){return Array.isArray(e)?e:void 0}function _(e,t){return t?!1:E(e["x-scalar-ignore"])===!0||E(e["x-internal"])===!0}function W(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function Ee(e){return N(e["x-displayName"])}function Ge(e,t){let o=[];for(let r of e){let n=h(r);if(!n)continue;let d=N(n.name),s=N(n.in);if(!d||!s)continue;let a=`${s}:${d}`;o.push({id:`${t}/parameters/${encodeURIComponent(a)}`,name:d,metadata:{paramIn:s,required:E(n.required)===!0,description:N(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return g(o)}function qe(e,t){let o=[];for(let[r,n]of Object.entries(e)){let d=h(n);if(!d)continue;let s=N(d.description),a=h(d.content),c=[];if(a)for(let[p]of Object.entries(a))c.push({id:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(p)}`,name:p,metadata:{contentType:p,pointer:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(p)}`,kind:"content"}});o.push({id:`${t}/responses/${encodeURIComponent(r)}`,name:r,metadata:{statusCode:r,description:s,pointer:`${t}/responses/${encodeURIComponent(r)}`,kind:"response"},children:c.length>0?c:void 0})}return g(o)}function Je(e,t){let o=[],r=H(e.parameters);if(r?.length){let s=Ge(r,t);s.length>0&&o.push({id:`${t}/parameters`,name:"Parameters",children:s,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=h(e.requestBody);if(n){let s=h(n.content),a=[];if(s)for(let[c]of Object.entries(s))a.push({id:`${t}/requestBody/content/${encodeURIComponent(c)}`,name:c,metadata:{contentType:c,pointer:`${t}/requestBody/content/${encodeURIComponent(c)}`,kind:"content"}});o.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:N(n.description),required:E(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:a.length>0?a:void 0})}let d=h(e.responses);if(d){let s=qe(d,t);s.length>0&&o.push({id:`${t}/responses`,name:"Responses",children:s,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return o}function Pe(e){let t=h(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let d=h(n);if(d)for(let s of Ce){let a=d[s],c=h(a);if(!c)continue;let p=N(c.operationId),i=N(c.summary),u=N(c.description),m=H(c.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],f=i??p??`${s.toUpperCase()} ${r}`,T=p??`${s}:${r}`,l=`/paths/${encodeURIComponent(r)}/${s}`;o.push({id:T,path:r,method:s,name:f,summary:i,description:u,operationId:p,deprecated:E(c.deprecated)===!0,tags:m,pointer:l,raw:c})}}return o}function Be(e){let t=H(e.tags);if(!t)return[];let o=[];for(let r of t){let n=h(r),d=N(n?.name);!d||!n||o.push({name:d,displayName:Ee(n)??d,description:N(n.description),parent:N(n.parent),order:W(n)})}return o}function _e(e){return e.some(t=>t.parent!==void 0)}function G(e,t,o,r){let n=t.expandOperationDetails?Je(e.raw,e.pointer):void 0;return{id:`op:${r}:${e.id}`,name:e.name,order:W(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:o,kind:"operation"},children:n&&n.length>0?n:void 0}}function Fe(e,t,o,r){let n=new Map;for(let i of t){if(_(i.raw,o.showInternal))continue;let u=i.tags.length>0?i.tags:["Other"];for(let m of u){let f=n.get(m)??[];f.push(i),n.set(m,f)}}let d=i=>{let m=(n.get(i.name)??[]).map(f=>G(f,o,"oas32-parent",i.name));return{id:`tag:${i.name}`,name:i.displayName,order:i.order,children:g(m),metadata:{description:i.description,source:"oas32-parent",kind:"tag"}}},s=new Set(e.map(i=>i.name)),a=[...e];for(let i of n.keys())i!=="Other"&&!s.has(i)&&a.push({name:i,displayName:i});let c=J(a,d,r),p=n.get("Other")??[];if(p.length>0&&!e.some(i=>i.name==="Other")){let i=p.map(u=>G(u,o,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(i),metadata:{source:"fallback",kind:"tag"}})}return g(c)}function Ue(e,t,o){let r=new Map,n=new Map;for(let a=0;a<e.length;a+=1)n.set(e[a].name,a);for(let a of t){if(_(a.raw,o.showInternal))continue;let c=a.tags.length>0?a.tags:["Other"];for(let p of c){let i=r.get(p)??[];i.push(a),r.set(p,i)}}let d=new Map;for(let a of e)d.set(a.name,a.displayName);let s=[];for(let[a,c]of r){let p=c.map(i=>G(i,o,"tag",a));s.push({id:`tag:${a}`,name:d.get(a)??a,order:a==="Other"?Number.MAX_SAFE_INTEGER:n.get(a),children:g(p),metadata:{source:"tag",kind:"tag"}})}return g(s)}function je(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function oe(e,t,o=0,r={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(o>=128||r.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];r.active.add(e);let n=[];for(let d of e){if(r.remaining<=0){r.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),r.warned=!0;break}let s=h(d);if(!s||typeof s.name!="string")continue;r.remaining--;let a={name:s.name};Array.isArray(s.tags)&&(a.tags=s.tags.filter(c=>typeof c=="string")),Array.isArray(s.groups)&&(a.groups=oe(s.groups,t,o+1,r)),n.push(a)}return r.active.delete(e),n}function ie(e,t,o,r,n,d=0){let s=[];if(e.tags)for(let a of e.tags){let c=t.get(a);if(!c||c.length===0)continue;let p=c.map(i=>G(i,n,"tag-group",a));s.push({id:`tag:${a}`,name:o.get(a)??a,order:r.get(a),children:g(p),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let a of e.groups)s.push(ie(a,t,o,r,n,d+1));return{id:`tag-group:${e.name}`,name:e.name,order:d*1e3,children:g(s),metadata:{source:"tag-group",kind:"tag-group"}}}function Le(e,t,o,r,n){let d=new Map,s=new Map,a=new Map;for(let u=0;u<t.length;u+=1)s.set(t[u].name,u),a.set(t[u].name,t[u].displayName);for(let u of o){if(_(u.raw,r.showInternal))continue;let m=u.tags.length>0?u.tags:["Other"];for(let f of m){let T=d.get(f)??[];T.push(u),d.set(f,T)}}let p=oe(e["x-tagGroups"],n).map(u=>ie(u,d,a,s,r)),i=d.get("Other");if(i&&i.length>0){let u=i.map(m=>G(m,r,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(u),metadata:{source:"fallback",kind:"tag"}})}return g(p)}function Ke(e,t){if(!t.showComponents)return;let o=h(e.components),r=h(o?.schemas);if(!r)return;let n=[];for(let[d,s]of Object.entries(r)){let a=h(s);!a||_(a,t.showInternal)||n.push({id:`schema:${d}`,name:d,order:W(a),metadata:{description:N(a.description),pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"tag",kind:"component"}}}function He(e){let t=new Map,o=v(e);for(let r=o.length-1;r>=0;r--){let n=o[r].node,d=n.children?.map(a=>t.get(a)).filter(Boolean),s=(n.metadata?.kind==="operation"?1:0)+(d?.reduce((a,c)=>a+(c.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:d,metadata:{...n.metadata,operationCount:s}})}return e.map(r=>t.get(r))}function se(e,t={}){let o={...Me,...t},r=[],n=h(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=Pe(n),s=Be(n),a;_e(s)?a=Fe(s,d,o,r):je(n)?a=Le(n,s,d,o,r):a=Ue(s,d,o);let c=Ke(n,o),p=He([...a,...c?[c]:[]]);return{root:{id:"root",name:"API Documentation",children:g(p),metadata:{kind:"root"}},warnings:r}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,findSchemaNodeByPath,formatSchemaType});
|
package/dist/adapters/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e}from"../chunk-FUR7BOZE.js";import"../chunk-AHHDXXHL.js";export{e as buildDocTree,a as buildOpenApiTree,b as buildSchemaTree,c as findSchemaNodeByPath,d as formatSchemaType};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as f,l as X}from"./chunk-AHHDXXHL.js";function P(e,t,r){let o=new Map;for(let c of e)o.has(c.name)?r.push(`Duplicate tag "${c.name}" was ignored.`):o.set(c.name,c);let n=new Map;for(let c of o.values())c.parent&&!o.has(c.parent)&&r.push(`Tag "${c.name}" references unknown parent "${c.parent}", treating as root.`),n.set(c.name,c.parent&&o.has(c.parent)?c.parent:null);let d=new Set;for(let c of o.keys()){let u=new Set,a=c;for(;a!==null&&!d.has(a);){if(u.has(a)){r.push(`Circular tag reference detected at "${a}". Breaking cycle.`),n.set(a,null);break}u.add(a),a=n.get(a)??null}for(let p of u)d.add(p)}let i=new Map(Array.from(o,([c,u])=>[c,t(u)])),s=[];for(let[c,u]of i){let a=n.get(c);if(a==null)s.push(u);else{let p=i.get(a);(p.children??(p.children=[])).push(u)}}for(let c of i.values())c.children&&(c.children=f(c.children));return f(s)}var z=["get","put","post","delete","options","head","patch","trace"],te={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function oe(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function B(e){return typeof e=="boolean"?e:void 0}function x(e){return Array.isArray(e)?e:void 0}function C(e,t){return t?!1:B(e["x-scalar-ignore"])===!0||B(e["x-internal"])===!0}function A(e){return oe(e["x-order"])}function re(e){return w(e["x-displayName"])}function ae(e){let t=N(e.paths);if(!t)return[];let r=[];for(let[o,n]of Object.entries(t)){let d=N(n);if(d)for(let i of z){let s=d[i];if(s==null)continue;let c=N(s);if(!c)continue;let u=w(c.operationId),a=w(c.summary),p=x(c.tags)?.filter(l=>typeof l=="string").map(l=>l.trim()).filter(l=>l.length>0)??[],m=a??u??`${i.toUpperCase()} ${o}`,g=u??`${i}:${o}`,T=`/paths/${encodeURIComponent(o)}/${i}`;r.push({id:g,path:o,method:i,name:m,summary:a,operationId:u,deprecated:B(c.deprecated)===!0,tags:p,pointer:T,raw:c})}}return r}function se(e){let t=x(e.tags);if(!t)return[];let r=[];for(let o of t){let n=N(o),d=w(n?.name);!d||!n||r.push({name:d,displayName:re(n)??d,description:w(n.description),parent:w(n.parent),order:A(n),raw:n})}return r}function ie(e){return e.some(t=>t.parent!==void 0)}function _(e){return{id:`op:root:${e.id}`,name:e.name,order:A(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function de(e,t,r,o){let n=new Map,d=[];for(let a of t)if(!C(a.raw,r.showInternal)){if(a.tags.length===0){d.push(a);continue}for(let p of a.tags){let m=n.get(p)??[];m.push(a),n.set(p,m)}}let i=a=>{let m=(n.get(a.name)??[]).map(g=>({id:`op:${a.name}:${g.id}`,name:g.name,order:A(g.raw),metadata:{method:g.method,path:g.path,operationId:g.operationId,deprecated:g.deprecated,summary:g.summary,pointer:g.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:f(m),metadata:{source:"oas32-parent",kind:"tag"}}},s=new Set(e.map(a=>a.name)),c=[...e];for(let a of n.keys())s.has(a)||c.push({name:a,displayName:a,raw:{}});let u=P(c,i,o);return f([...u,...d.map(_)])}function ce(e){let t=x(e["x-tagGroups"]);if(!t)return[];let r=(o,n)=>{let d=N(o),i=w(d?.name),s=x(d?.tags)?.filter(u=>typeof u=="string").map(u=>u.trim()).filter(u=>u.length>0)??[];if(!i)return null;let c=x(d?.groups)?.map((u,a)=>r(u,a)).filter(u=>u!==null)??[];return{name:i,tags:s,groups:c.length>0?c:void 0,order:A(d??{})??n}};return t.map((o,n)=>r(o,n)).filter(o=>o!==null)}function pe(e,t,r,o){let n=new Map;for(let a of t)n.set(a.name,a.displayName);let d=new Map,i=[];for(let a of r)if(!C(a.raw,o.showInternal)){if(a.tags.length===0){i.push(a);continue}for(let p of a.tags){let m=d.get(p)??[];m.push(a),d.set(p,m)}}let s=a=>(d.get(a)??[]).map(m=>({id:`op:${a}:${m.id}`,name:m.name,order:A(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),c=a=>({id:`tag:${a}`,name:n.get(a)??a,children:f(s(a)),metadata:{source:"tag-group",kind:"tag"}}),u=a=>{let p=[];for(let m of a.tags)d.get(m)?.length&&p.push(c(m));for(let m of a.groups??[])p.push(u(m));return{id:`tag-group:${a.name}`,name:a.name,order:a.order,children:f(p),metadata:{source:"tag-group",kind:"tag-group"}}};return f([...e.map(u),...i.map(_)])}function ue(e,t,r){let o=new Map,n=[],d=new Map;for(let p=0;p<e.length;p+=1){let m=e[p];d.set(m.name,m.order??p)}for(let p of t)if(!C(p.raw,r.showInternal)){if(p.tags.length===0){n.push(p);continue}for(let m of p.tags){let g=o.get(m)??[];g.push(p),o.set(m,g)}}let i=new Map;for(let p of e)i.set(p.name,p.displayName);let s=(p,m)=>{let T=(o.get(p)??[]).map(l=>({id:`op:${p}:${l.id}`,name:l.name,order:A(l.raw),metadata:{method:l.method,path:l.path,operationId:l.operationId,deprecated:l.deprecated,summary:l.summary,pointer:l.pointer,source:"tag",kind:"operation"}}));return{id:`tag:${p}`,name:i.get(p)??p,order:d.get(p)??m,children:f(T),metadata:{source:"tag",kind:"tag"}}},c=[],u=new Set;e.forEach((p,m)=>{u.add(p.name),c.push(s(p.name,m))});let a=e.length;for(let p of o.keys())u.has(p)||(c.push(s(p,a)),a+=1);return f([...c,...n.map(_)])}function me(e,t){if(!t.showComponents)return;let r=N(e.components),o=N(r?.schemas);if(!o)return;let n=[];for(let[d,i]of Object.entries(o)){let s=N(i);!s||C(s,t.showInternal)||n.push({id:`schema:${d}`,name:d,order:A(s),metadata:{pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"section",kind:"section",section:"components"}}}function ge(e,t){if(!t.showWebhooks)return;let r=N(e.webhooks);if(!r)return;let o=[];for(let[n,d]of Object.entries(r)){let i=N(d);if(i)for(let s of z){let c=i[s],u=N(c);if(!u||C(u,t.showInternal))continue;let a=w(u.operationId),p=w(u.summary),m=p??a??`${s.toUpperCase()} ${n}`;o.push({id:`webhook:${n}:${s}`,name:m,order:A(u),metadata:{method:s,path:n,operationId:a,deprecated:B(u.deprecated)===!0,summary:p,pointer:`/webhooks/${encodeURIComponent(n)}/${s}`,source:"tag",kind:"webhook"}})}}if(o.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}}function fe(e,t={}){let r={...te,...t},o=[],n=N(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=ae(n),i=se(n),s;if(ie(i))s=de(i,d,r,o);else{let m=ce(n);m.length>0?s=pe(m,i,d,r):s=ue(i,d,r)}let c=ge(n,r),u=me(n,r),p=[{id:"section:apis",name:"APIs",children:s,metadata:{kind:"section",source:"section",section:"apis"},order:0},...c?[c]:[],...u?[u]:[]];return{root:{id:"root",name:"OpenAPI",children:f(p),metadata:{kind:"root"}},warnings:o}}var V={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},j={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Y=new Set(["string","number","integer","boolean","null"]);function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function F(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Q(e){return typeof e=="boolean"?e:void 0}function L(e){return Array.isArray(e)?e:void 0}function le(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"))return t}function he(e){return e?Array.isArray(e)?e.every(t=>Y.has(t)):Y.has(e):!1}function Te(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Z(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,r=>`\\${r}`)).join(".")||"root"}function E(e,t,r,o,n,d){n.remaining--;let i=le(t),s=F(t.format),c=F(t.description),u=Q(t.deprecated)===!0,a=Te(i),p={jsonPath:r,type:i,format:s,required:d,deprecated:u,description:c,kind:a},m=F(t.$ref);if(m){if(n.refStack.has(m))return n.warnings.push(`Circular $ref detected at ${r.join(".")}: ${m}. Breaking recursion.`),{id:S(r),name:e,metadata:{...p,kind:"ref",isLeaf:!0}};n.refStack.add(m)}let g,T=he(i),l=n.activeSchemas.has(t);if(l&&n.warnings.push(`Circular schema object detected at ${S(r)}.`),l||o>=n.options.maxDepth||n.remaining<=0)return m&&n.refStack.delete(m),{id:S(r),name:e,metadata:{...p,isLeaf:!0}};n.activeSchemas.add(t);let k=M(t.properties);if(k){let R=L(t.required)??[],y=new Set(R.filter(b=>typeof b=="string")),J=[];for(let[b,$]of Object.entries(k)){if(n.remaining<=0)break;let I=M($);I&&(!n.options.showDeprecated&&Q(I.deprecated)===!0||J.push(E(b,I,[...r,"properties",b],o+1,n,y.has(b))))}g=[...g??[],...f(J)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&i==="array"){let R=M(t.items);if(R){let y=E("items",R,[...r,"items"],o+1,n,!1);g=[...g??[],y],T=!1}else p.hasItems=!1}if(n.options.expandCombinators){let R=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:y,kind:J}of R){if(n.remaining<=0)break;let b=L(t[y]);if(!b?.length)continue;n.remaining--;let $=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ne=b[D],W=M(ne);if(!W){n.remaining--,$.push({id:S([...r,y,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...r,y,String(D)],kind:"unknown",isLeaf:!0}});continue}$.push(E(`[${D}]`,W,[...r,y,String(D)],o+1,n,!1))}let I={id:S([...r,y]),name:y,children:f($),metadata:{jsonPath:[...r,y],kind:J}};g=[...g??[],I],T=!1}}return L(t.enum)?.length&&!g?.length&&(p.kind="enum",T=!0),m&&n.refStack.delete(m),n.activeSchemas.delete(t),{id:S(r),name:e,order:Object.prototype.hasOwnProperty.call(V,e)?V[e]:void 0,metadata:{...p,isLeaf:T},children:g}}function Oe(e,t={}){let r={...j,...t};r.maxDepth=Number.isFinite(r.maxDepth)?Math.min(128,Math.max(0,Math.trunc(r.maxDepth))):j.maxDepth,r.maxNodes=Number.isFinite(r.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(r.maxNodes))):j.maxNodes;let o=[],n=M(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let d={options:r,warnings:o,refStack:new Set,activeSchemas:new Set,remaining:r.maxNodes},i=E("root",n,[],0,d,!0);return d.remaining<=0&&o.push(`Schema node limit (${r.maxNodes}) reached; remaining branches were omitted.`),{root:i,warnings:o}}function Ne(e,t){if(t.length===0)return e;let r=JSON.stringify(t),o=[e],n=new Set;for(let d=0;d<o.length;d++){let i=o[d];if(!i||n.has(i))continue;if(n.add(i),JSON.stringify(i.metadata?.jsonPath)===r)return i;for(let c of i.children??[])o.push(c)}}function ye(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Z(e.type)} (${e.format})`:Z(e.type)}var be=["get","put","post","delete","options","head","patch","trace"],we={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function h(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function O(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function q(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function U(e,t){return t?!1:q(e["x-scalar-ignore"])===!0||q(e["x-internal"])===!0}function H(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function ke(e){return O(e["x-displayName"])}function De(e,t){let r=[];for(let o of e){let n=h(o);if(!n)continue;let d=O(n.name),i=O(n.in);if(!d||!i)continue;let s=`${i}:${d}`;r.push({id:`${t}/parameters/${encodeURIComponent(s)}`,name:d,metadata:{paramIn:i,required:q(n.required)===!0,description:O(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return f(r)}function Ae(e,t){let r=[];for(let[o,n]of Object.entries(e)){let d=h(n);if(!d)continue;let i=O(d.description),s=h(d.content),c=[];if(s)for(let[u]of Object.entries(s))c.push({id:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(u)}`,name:u,metadata:{contentType:u,pointer:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(u)}`,kind:"content"}});r.push({id:`${t}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:i,pointer:`${t}/responses/${encodeURIComponent(o)}`,kind:"response"},children:c.length>0?c:void 0})}return f(r)}function Re(e,t){let r=[],o=K(e.parameters);if(o?.length){let i=De(o,t);i.length>0&&r.push({id:`${t}/parameters`,name:"Parameters",children:i,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=h(e.requestBody);if(n){let i=h(n.content),s=[];if(i)for(let[c]of Object.entries(i))s.push({id:`${t}/requestBody/content/${encodeURIComponent(c)}`,name:c,metadata:{contentType:c,pointer:`${t}/requestBody/content/${encodeURIComponent(c)}`,kind:"content"}});r.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:O(n.description),required:q(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:s.length>0?s:void 0})}let d=h(e.responses);if(d){let i=Ae(d,t);i.length>0&&r.push({id:`${t}/responses`,name:"Responses",children:i,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return r}function Se(e){let t=h(e.paths);if(!t)return[];let r=[];for(let[o,n]of Object.entries(t)){let d=h(n);if(d)for(let i of be){let s=d[i],c=h(s);if(!c)continue;let u=O(c.operationId),a=O(c.summary),p=O(c.description),m=K(c.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],g=a??u??`${i.toUpperCase()} ${o}`,T=u??`${i}:${o}`,l=`/paths/${encodeURIComponent(o)}/${i}`;r.push({id:T,path:o,method:i,name:g,summary:a,description:p,operationId:u,deprecated:q(c.deprecated)===!0,tags:m,pointer:l,raw:c})}}return r}function $e(e){let t=K(e.tags);if(!t)return[];let r=[];for(let o of t){let n=h(o),d=O(n?.name);!d||!n||r.push({name:d,displayName:ke(n)??d,description:O(n.description),parent:O(n.parent),order:H(n)})}return r}function Ie(e){return e.some(t=>t.parent!==void 0)}function G(e,t,r,o){let n=t.expandOperationDetails?Re(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:H(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:r,kind:"operation"},children:n&&n.length>0?n:void 0}}function xe(e,t,r,o){let n=new Map;for(let a of t){if(U(a.raw,r.showInternal))continue;let p=a.tags.length>0?a.tags:["Other"];for(let m of p){let g=n.get(m)??[];g.push(a),n.set(m,g)}}let d=a=>{let m=(n.get(a.name)??[]).map(g=>G(g,r,"oas32-parent",a.name));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:f(m),metadata:{description:a.description,source:"oas32-parent",kind:"tag"}}},i=new Set(e.map(a=>a.name)),s=[...e];for(let a of n.keys())a!=="Other"&&!i.has(a)&&s.push({name:a,displayName:a});let c=P(s,d,o),u=n.get("Other")??[];if(u.length>0&&!e.some(a=>a.name==="Other")){let a=u.map(p=>G(p,r,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(a),metadata:{source:"fallback",kind:"tag"}})}return f(c)}function Ce(e,t,r){let o=new Map,n=new Map;for(let s=0;s<e.length;s+=1)n.set(e[s].name,s);for(let s of t){if(U(s.raw,r.showInternal))continue;let c=s.tags.length>0?s.tags:["Other"];for(let u of c){let a=o.get(u)??[];a.push(s),o.set(u,a)}}let d=new Map;for(let s of e)d.set(s.name,s.displayName);let i=[];for(let[s,c]of o){let u=c.map(a=>G(a,r,"tag",s));i.push({id:`tag:${s}`,name:d.get(s)??s,order:s==="Other"?Number.MAX_SAFE_INTEGER:n.get(s),children:f(u),metadata:{source:"tag",kind:"tag"}})}return f(i)}function Me(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function v(e,t,r=0,o={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(r>=128||o.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];o.active.add(e);let n=[];for(let d of e){if(o.remaining<=0){o.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),o.warned=!0;break}let i=h(d);if(!i||typeof i.name!="string")continue;o.remaining--;let s={name:i.name};Array.isArray(i.tags)&&(s.tags=i.tags.filter(c=>typeof c=="string")),Array.isArray(i.groups)&&(s.groups=v(i.groups,t,r+1,o)),n.push(s)}return o.active.delete(e),n}function ee(e,t,r,o,n,d=0){let i=[];if(e.tags)for(let s of e.tags){let c=t.get(s);if(!c||c.length===0)continue;let u=c.map(a=>G(a,n,"tag-group",s));i.push({id:`tag:${s}`,name:r.get(s)??s,order:o.get(s),children:f(u),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let s of e.groups)i.push(ee(s,t,r,o,n,d+1));return{id:`tag-group:${e.name}`,name:e.name,order:d*1e3,children:f(i),metadata:{source:"tag-group",kind:"tag-group"}}}function qe(e,t,r,o,n){let d=new Map,i=new Map,s=new Map;for(let p=0;p<t.length;p+=1)i.set(t[p].name,p),s.set(t[p].name,t[p].displayName);for(let p of r){if(U(p.raw,o.showInternal))continue;let m=p.tags.length>0?p.tags:["Other"];for(let g of m){let T=d.get(g)??[];T.push(p),d.set(g,T)}}let u=v(e["x-tagGroups"],n).map(p=>ee(p,d,s,i,o)),a=d.get("Other");if(a&&a.length>0){let p=a.map(m=>G(m,o,"fallback","Other"));u.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(p),metadata:{source:"fallback",kind:"tag"}})}return f(u)}function Ge(e,t){if(!t.showComponents)return;let r=h(e.components),o=h(r?.schemas);if(!o)return;let n=[];for(let[d,i]of Object.entries(o)){let s=h(i);!s||U(s,t.showInternal)||n.push({id:`schema:${d}`,name:d,order:H(s),metadata:{description:O(s.description),pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"tag",kind:"component"}}}function Je(e){let t=new Map,r=X(e);for(let o=r.length-1;o>=0;o--){let n=r[o].node,d=n.children?.map(s=>t.get(s)).filter(Boolean),i=(n.metadata?.kind==="operation"?1:0)+(d?.reduce((s,c)=>s+(c.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:d,metadata:{...n.metadata,operationCount:i}})}return e.map(o=>t.get(o))}function Pe(e,t={}){let r={...we,...t},o=[],n=h(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=Se(n),i=$e(n),s;Ie(i)?s=xe(i,d,r,o):Me(n)?s=qe(n,i,d,r,o):s=Ce(i,d,r);let c=Ge(n,r),u=Je([...s,...c?[c]:[]]);return{root:{id:"root",name:"API Documentation",children:f(u),metadata:{kind:"root"}},warnings:o}}export{fe as a,Oe as b,Ne as c,ye as d,Pe as e};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var v=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Se=Object.getOwnPropertyNames;var xe=Object.prototype.hasOwnProperty;var Ie=(e,n)=>{for(var r in n)v(e,r,{get:n[r],enumerable:!0})},$e=(e,n,r,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of Se(n))!xe.call(e,t)&&t!==r&&v(e,t,{get:()=>n[t],enumerable:!(o=Ae(n,t))||o.enumerable});return e};var Ce=e=>$e(v({},"__esModule",{value:!0}),e);var pn={};Ie(pn,{buildDocTree:()=>De,buildOpenApiTree:()=>ge,buildSchemaTree:()=>ye,countNodes:()=>oe,filterTree:()=>ae,findNode:()=>C,findPath:()=>H,findSchemaNodeByPath:()=>Oe,flattenTree:()=>_,formatSchemaType:()=>be,getBranchIds:()=>de,getExpandableIds:()=>W,getLeaves:()=>re,getMaxDepth:()=>ie,insertChild:()=>ce,isTreeNode:()=>te,moveNode:()=>me,removeNode:()=>X,reorderNode:()=>ue,sortNodes:()=>f,sortTree:()=>se,updateNode:()=>M});module.exports=Ce(pn);function te(e){return e!=null}function*A(e,n=1/0){let r=new Set,o=[];for(let t=e.length-1;t>=0;t--)o.push({node:e[t],depth:1});for(;o.length;){let t=o.pop();if(r.has(t.node)||t.depth>n)continue;r.add(t.node),yield t;let d=t.node.children??[];for(let i=d.length-1;i>=0;i--)o.push({node:d[i],parent:t,depth:t.depth+1})}}function C(e,n){for(let{node:r}of A(e))if(r.id===n)return r}function H(e,n,r=[]){for(let o of A(e)){if(o.node.id!==n)continue;let t=[],d=o;for(;d;)t.push(d.node),d=d.parent;t.reverse();let i=[...r,...t];return{nodes:i,target:o.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(c=>c.id)}}return null}function re(e){let n=[];for(let{node:r}of A(e))r.children?.length||n.push(r);return n}function oe(e){let n=0;for(let r of A(e))n++;return n}function ie(e){let n=0;for(let r of A(e))n=Math.max(n,r.depth);return n}var Me=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function f(e){return[...e].sort((n,r)=>{let o=(n.order??Number.MAX_SAFE_INTEGER)-(r.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(o)?0:o)||Me.compare(n.name,r.name)||n.id.localeCompare(r.id)})}function F(e,n,r=()=>!0){let o=new Set,t=new Map,d=[{source:e,output:[],index:0}];for(;d.length;){let i=d[d.length-1];if(i.index<i.source.length){let a=i.source[i.index++];if(o.has(a))continue;if(t.has(a)){let u=t.get(a);u&&i.output.push(u)}else if(a.children?.length&&r(a))o.add(a),d.push({source:a.children,output:[],index:0,owner:a});else{let u=n(a);t.set(a,u),u&&i.output.push(u)}continue}d.pop();let c=i.source.length===i.output.length&&i.source.every((a,u)=>a===i.output[u])?i.source:i.output;if(!i.owner)return c;let s=i.owner,p=n(c===s.children?s:{...s,children:c});o.delete(s),t.set(s,p),p&&d[d.length-1].output.push(p)}return e}function se(e){return f(F(e,n=>n.children?.length?{...n,children:f(n.children)}:n))}function ae(e,n){let r=n.query.trim().toLowerCase();return r?F(e,o=>o.name.toLowerCase().includes(r)||o.id.toLowerCase().includes(r)||(n.keepAncestors??!0)&&o.children?.length?o:null):e}function W(e,n={}){let r=[];for(let{node:o,depth:t}of A(e,n.maxDepth??1/0))t<=(n.maxDepth??1/0)&&(!(n.onlyWithChildren??!0)||o.children?.length)&&r.push(o.id);return r}function de(e){return W(e)}function _(e){return Array.from(A(e),({node:n,depth:r})=>({node:n,depth:r}))}function M(e,n,r){return F(e,o=>o.id===n?r(o):o,o=>o.id!==n)}function X(e,n){return F(e,r=>r.id===n?null:r,r=>r.id!==n)}function ce(e,n,r){return M(e,n,o=>({...o,children:[...o.children??[],r]}))}function pe(e,n){return Math.max(0,Math.min(Number.isNaN(e)?0:Math.trunc(e),n))}function ue(e,n,r){let o=H(e,n);if(!o)return null;let t=o.parent?.children??e,d=t.indexOf(o.target),i=pe(r,t.length-1),c={nodes:e,moved:o.target,parentId:o.parent?.id??null,fromIndex:d,toIndex:i};if(i===d)return c;let s=[...t];return s.splice(d,1),s.splice(i,0,o.target),{...c,nodes:o.parent?M(e,o.parent.id,p=>({...p,children:s})):s}}function me(e,n,r,o){let t=C(e,n);if(!t||r!==null&&(!C(e,r)||C([t],r)))return null;let d=X(e,n),i=c=>{let s=[...c];return s.splice(pe(o??s.length,s.length),0,t),s};return r===null?i(d):M(d,r,c=>({...c,children:i(c.children??[])}))}function U(e,n,r){let o=new Map;for(let s of e)o.has(s.name)?r.push(`Duplicate tag "${s.name}" was ignored.`):o.set(s.name,s);let t=new Map;for(let s of o.values())s.parent&&!o.has(s.parent)&&r.push(`Tag "${s.name}" references unknown parent "${s.parent}", treating as root.`),t.set(s.name,s.parent&&o.has(s.parent)?s.parent:null);let d=new Set;for(let s of o.keys()){let p=new Set,a=s;for(;a!==null&&!d.has(a);){if(p.has(a)){r.push(`Circular tag reference detected at "${a}". Breaking cycle.`),t.set(a,null);break}p.add(a),a=t.get(a)??null}for(let u of p)d.add(u)}let i=new Map(Array.from(o,([s,p])=>[s,n(p)])),c=[];for(let[s,p]of i){let a=t.get(s);if(a==null)c.push(p);else{let u=i.get(a);(u.children??(u.children=[])).push(p)}}for(let s of i.values())s.children&&(s.children=f(s.children));return f(c)}var fe=["get","put","post","delete","options","head","patch","trace"],Ee={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Ge(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function j(e){return typeof e=="boolean"?e:void 0}function E(e){return Array.isArray(e)?e:void 0}function G(e,n){return n?!1:j(e["x-scalar-ignore"])===!0||j(e["x-internal"])===!0}function R(e){return Ge(e["x-order"])}function qe(e){return w(e["x-displayName"])}function Pe(e){let n=N(e.paths);if(!n)return[];let r=[];for(let[o,t]of Object.entries(n)){let d=N(t);if(d)for(let i of fe){let c=d[i];if(c==null)continue;let s=N(c);if(!s)continue;let p=w(s.operationId),a=w(s.summary),u=E(s.tags)?.filter(O=>typeof O=="string").map(O=>O.trim()).filter(O=>O.length>0)??[],m=a??p??`${i.toUpperCase()} ${o}`,g=p??`${i}:${o}`,T=`/paths/${encodeURIComponent(o)}/${i}`;r.push({id:g,path:o,method:i,name:m,summary:a,operationId:p,deprecated:j(s.deprecated)===!0,tags:u,pointer:T,raw:s})}}return r}function Je(e){let n=E(e.tags);if(!n)return[];let r=[];for(let o of n){let t=N(o),d=w(t?.name);!d||!t||r.push({name:d,displayName:qe(t)??d,description:w(t.description),parent:w(t.parent),order:R(t),raw:t})}return r}function Be(e){return e.some(n=>n.parent!==void 0)}function z(e){return{id:`op:root:${e.id}`,name:e.name,order:R(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function Fe(e,n,r,o){let t=new Map,d=[];for(let a of n)if(!G(a.raw,r.showInternal)){if(a.tags.length===0){d.push(a);continue}for(let u of a.tags){let m=t.get(u)??[];m.push(a),t.set(u,m)}}let i=a=>{let m=(t.get(a.name)??[]).map(g=>({id:`op:${a.name}:${g.id}`,name:g.name,order:R(g.raw),metadata:{method:g.method,path:g.path,operationId:g.operationId,deprecated:g.deprecated,summary:g.summary,pointer:g.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:f(m),metadata:{source:"oas32-parent",kind:"tag"}}},c=new Set(e.map(a=>a.name)),s=[...e];for(let a of t.keys())c.has(a)||s.push({name:a,displayName:a,raw:{}});let p=U(s,i,o);return f([...p,...d.map(z)])}function _e(e){let n=E(e["x-tagGroups"]);if(!n)return[];let r=(o,t)=>{let d=N(o),i=w(d?.name),c=E(d?.tags)?.filter(p=>typeof p=="string").map(p=>p.trim()).filter(p=>p.length>0)??[];if(!i)return null;let s=E(d?.groups)?.map((p,a)=>r(p,a)).filter(p=>p!==null)??[];return{name:i,tags:c,groups:s.length>0?s:void 0,order:R(d??{})??t}};return n.map((o,t)=>r(o,t)).filter(o=>o!==null)}function Ue(e,n,r,o){let t=new Map;for(let a of n)t.set(a.name,a.displayName);let d=new Map,i=[];for(let a of r)if(!G(a.raw,o.showInternal)){if(a.tags.length===0){i.push(a);continue}for(let u of a.tags){let m=d.get(u)??[];m.push(a),d.set(u,m)}}let c=a=>(d.get(a)??[]).map(m=>({id:`op:${a}:${m.id}`,name:m.name,order:R(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),s=a=>({id:`tag:${a}`,name:t.get(a)??a,children:f(c(a)),metadata:{source:"tag-group",kind:"tag"}}),p=a=>{let u=[];for(let m of a.tags)d.get(m)?.length&&u.push(s(m));for(let m of a.groups??[])u.push(p(m));return{id:`tag-group:${a.name}`,name:a.name,order:a.order,children:f(u),metadata:{source:"tag-group",kind:"tag-group"}}};return f([...e.map(p),...i.map(z)])}function je(e,n,r){let o=new Map,t=[],d=new Map;for(let s=0;s<e.length;s+=1){let p=e[s];d.set(p.name,p.order??s)}for(let s of n)if(!G(s.raw,r.showInternal)){if(s.tags.length===0){t.push(s);continue}for(let p of s.tags){let a=o.get(p)??[];a.push(s),o.set(p,a)}}let i=new Map;for(let s of e)i.set(s.name,s.displayName);let c=[];for(let[s,p]of o){let a=p.map(u=>({id:`op:${s}:${u.id}`,name:u.name,order:R(u.raw),metadata:{method:u.method,path:u.path,operationId:u.operationId,deprecated:u.deprecated,summary:u.summary,pointer:u.pointer,source:"tag",kind:"operation"}}));c.push({id:`tag:${s}`,name:i.get(s)??s,order:d.get(s),children:f(a),metadata:{source:"tag",kind:"tag"}})}return f([...c,...t.map(z)])}function Le(e,n){if(!n.showComponents)return;let r=N(e.components),o=N(r?.schemas);if(!o)return;let t=[];for(let[d,i]of Object.entries(o)){let c=N(i);!c||G(c,n.showInternal)||t.push({id:`schema:${d}`,name:d,order:R(c),metadata:{pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(t),metadata:{source:"section",kind:"section",section:"components"}}}function Ke(e,n){if(!n.showWebhooks)return;let r=N(e.webhooks);if(!r)return;let o=[];for(let[t,d]of Object.entries(r)){let i=N(d);if(i)for(let c of fe){let s=i[c],p=N(s);if(!p||G(p,n.showInternal))continue;let a=w(p.operationId),u=w(p.summary),m=u??a??`${c.toUpperCase()} ${t}`;o.push({id:`webhook:${t}:${c}`,name:m,order:R(p),metadata:{method:c,path:t,operationId:a,deprecated:j(p.deprecated)===!0,summary:u,pointer:`/webhooks/${encodeURIComponent(t)}/${c}`,source:"tag",kind:"webhook"}})}}if(o.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}}function ge(e,n={}){let r={...Ee,...n},o=[],t=N(e);if(!t)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=Pe(t),i=Je(t),c;if(Be(i))c=Fe(i,d,r,o);else{let m=_e(t);m.length>0?c=Ue(m,i,d,r):c=je(i,d,r)}let s=Ke(t,r),p=Le(t,r),u=[{id:"section:apis",name:"APIs",children:c,metadata:{kind:"section",source:"section",section:"apis"},order:0},...s?[s]:[],...p?[p]:[]];return{root:{id:"root",name:"OpenAPI",children:f(u),metadata:{kind:"root"}},warnings:o}}var le={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},V={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},he=new Set(["string","number","integer","boolean","null"]);function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Y(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Te(e){return typeof e=="boolean"?e:void 0}function Q(e){return Array.isArray(e)?e:void 0}function ve(e){let n=e.type;if(typeof n=="string"||Array.isArray(n)&&n.every(r=>typeof r=="string"))return n}function He(e){return e?Array.isArray(e)?e.every(n=>he.has(n)):he.has(e):!1}function We(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Ne(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function x(e){return e.map(n=>n.replace(/[\\.\[\]]/g,r=>`\\${r}`)).join(".")||"root"}function L(e,n,r,o,t,d){t.remaining--;let i=ve(n),c=Y(n.format),s=Y(n.description),p=Te(n.deprecated)===!0,a=We(i),u={jsonPath:r,type:i,format:c,required:d,deprecated:p,description:s,kind:a},m=Y(n.$ref);if(m){if(t.refStack.has(m))return t.warnings.push(`Circular $ref detected at ${r.join(".")}: ${m}. Breaking recursion.`),{id:x(r),name:e,metadata:{...u,kind:"ref",isLeaf:!0}};t.refStack.add(m)}let g,T=He(i),O=t.activeSchemas.has(n);if(O&&t.warnings.push(`Circular schema object detected at ${x(r)}.`),O||o>=t.options.maxDepth||t.remaining<=0)return m&&t.refStack.delete(m),{id:x(r),name:e,metadata:{...u,isLeaf:!0}};t.activeSchemas.add(n);let k=q(n.properties);if(k){let S=Q(n.required)??[],y=new Set(S.filter(b=>typeof b=="string")),B=[];for(let[b,I]of Object.entries(k)){if(t.remaining<=0)break;let $=q(I);$&&(!t.options.showDeprecated&&Te($.deprecated)===!0||B.push(L(b,$,[...r,"properties",b],o+1,t,y.has(b))))}g=[...g??[],...f(B)],T=!1}if(t.remaining>0&&t.options.showArrayItems&&i==="array"){let S=q(n.items);if(S){let y=L("items",S,[...r,"items"],o+1,t,!1);g=[...g??[],y],T=!1}else u.hasItems=!1}if(t.options.expandCombinators){let S=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:y,kind:B}of S){if(t.remaining<=0)break;let b=Q(n[y]);if(!b?.length)continue;t.remaining--;let I=[];for(let D=0;D<b.length&&t.remaining>0;D++){let Re=b[D],ne=q(Re);if(!ne){t.remaining--,I.push({id:x([...r,y,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...r,y,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(L(`[${D}]`,ne,[...r,y,String(D)],o+1,t,!1))}let $={id:x([...r,y]),name:y,children:f(I),metadata:{jsonPath:[...r,y],kind:B}};g=[...g??[],$],T=!1}}return Q(n.enum)?.length&&!g?.length&&(u.kind="enum",T=!0),m&&t.refStack.delete(m),t.activeSchemas.delete(n),{id:x(r),name:e,order:Object.prototype.hasOwnProperty.call(le,e)?le[e]:void 0,metadata:{...u,isLeaf:T},children:g}}function ye(e,n={}){let r={...V,...n};r.maxDepth=Number.isFinite(r.maxDepth)?Math.min(128,Math.max(0,Math.trunc(r.maxDepth))):V.maxDepth,r.maxNodes=Number.isFinite(r.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(r.maxNodes))):V.maxNodes;let o=[],t=q(e);if(!t)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let d={options:r,warnings:o,refStack:new Set,activeSchemas:new Set,remaining:r.maxNodes},i=L("root",t,[],0,d,!0);return d.remaining<=0&&o.push(`Schema node limit (${r.maxNodes}) reached; remaining branches were omitted.`),{root:i,warnings:o}}function Oe(e,n){if(n.length===0)return e;let r=JSON.stringify(n),o=[e],t=new Set;for(let d=0;d<o.length;d++){let i=o[d];if(!i||t.has(i))continue;if(t.add(i),JSON.stringify(i.metadata?.jsonPath)===r)return i;for(let s of i.children??[])o.push(s)}}function be(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Ne(e.type)} (${e.format})`:Ne(e.type)}var Xe=["get","put","post","delete","options","head","patch","trace"],ze={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function P(e){return typeof e=="boolean"?e:void 0}function Z(e){return Array.isArray(e)?e:void 0}function K(e,n){return n?!1:P(e["x-scalar-ignore"])===!0||P(e["x-internal"])===!0}function ee(e){let n=e["x-order"];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Ve(e){return h(e["x-displayName"])}function Ye(e,n){let r=[];for(let o of e){let t=l(o);if(!t)continue;let d=h(t.name),i=h(t.in);if(!d||!i)continue;let c=`${i}:${d}`;r.push({id:`${n}/parameters/${encodeURIComponent(c)}`,name:d,metadata:{paramIn:i,required:P(t.required)===!0,description:h(t.description),pointer:`${n}/parameters`,kind:"parameter"}})}return f(r)}function Qe(e,n){let r=[];for(let[o,t]of Object.entries(e)){let d=l(t);if(!d)continue;let i=h(d.description),c=l(d.content),s=[];if(c)for(let[p]of Object.entries(c))s.push({id:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,name:p,metadata:{contentType:p,pointer:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,kind:"content"}});r.push({id:`${n}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:i,pointer:`${n}/responses/${encodeURIComponent(o)}`,kind:"response"},children:s.length>0?s:void 0})}return f(r)}function Ze(e,n){let r=[],o=Z(e.parameters);if(o?.length){let i=Ye(o,n);i.length>0&&r.push({id:`${n}/parameters`,name:"Parameters",children:i,metadata:{pointer:`${n}/parameters`,kind:"parameters"}})}let t=l(e.requestBody);if(t){let i=l(t.content),c=[];if(i)for(let[s]of Object.entries(i))c.push({id:`${n}/requestBody/content/${encodeURIComponent(s)}`,name:s,metadata:{contentType:s,pointer:`${n}/requestBody/content/${encodeURIComponent(s)}`,kind:"content"}});r.push({id:`${n}/requestBody`,name:"Request Body",metadata:{description:h(t.description),required:P(t.required)===!0,pointer:`${n}/requestBody`,kind:"request-body"},children:c.length>0?c:void 0})}let d=l(e.responses);if(d){let i=Qe(d,n);i.length>0&&r.push({id:`${n}/responses`,name:"Responses",children:i,metadata:{pointer:`${n}/responses`,kind:"responses"}})}return r}function en(e){let n=l(e.paths);if(!n)return[];let r=[];for(let[o,t]of Object.entries(n)){let d=l(t);if(d)for(let i of Xe){let c=d[i],s=l(c);if(!s)continue;let p=h(s.operationId),a=h(s.summary),u=h(s.description),m=Z(s.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],g=a??p??`${i.toUpperCase()} ${o}`,T=p??`${i}:${o}`,O=`/paths/${encodeURIComponent(o)}/${i}`;r.push({id:T,path:o,method:i,name:g,summary:a,description:u,operationId:p,deprecated:P(s.deprecated)===!0,tags:m,pointer:O,raw:s})}}return r}function nn(e){let n=Z(e.tags);if(!n)return[];let r=[];for(let o of n){let t=l(o),d=h(t?.name);!d||!t||r.push({name:d,displayName:Ve(t)??d,description:h(t.description),parent:h(t.parent),order:ee(t)})}return r}function tn(e){return e.some(n=>n.parent!==void 0)}function J(e,n,r,o){let t=n.expandOperationDetails?Ze(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:ee(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:r,kind:"operation"},children:t&&t.length>0?t:void 0}}function rn(e,n,r,o){let t=new Map;for(let a of n){if(K(a.raw,r.showInternal))continue;let u=a.tags.length>0?a.tags:["Other"];for(let m of u){let g=t.get(m)??[];g.push(a),t.set(m,g)}}let d=a=>{let m=(t.get(a.name)??[]).map(g=>J(g,r,"oas32-parent",a.name));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:f(m),metadata:{description:a.description,source:"oas32-parent",kind:"tag"}}},i=new Set(e.map(a=>a.name)),c=[...e];for(let a of t.keys())a!=="Other"&&!i.has(a)&&c.push({name:a,displayName:a});let s=U(c,d,o),p=t.get("Other")??[];if(p.length>0&&!e.some(a=>a.name==="Other")){let a=p.map(u=>J(u,r,"fallback","Other"));s.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(a),metadata:{source:"fallback",kind:"tag"}})}return f(s)}function on(e,n,r){let o=new Map,t=new Map;for(let c=0;c<e.length;c+=1)t.set(e[c].name,c);for(let c of n){if(K(c.raw,r.showInternal))continue;let s=c.tags.length>0?c.tags:["Other"];for(let p of s){let a=o.get(p)??[];a.push(c),o.set(p,a)}}let d=new Map;for(let c of e)d.set(c.name,c.displayName);let i=[];for(let[c,s]of o){let p=s.map(a=>J(a,r,"tag",c));i.push({id:`tag:${c}`,name:d.get(c)??c,order:c==="Other"?Number.MAX_SAFE_INTEGER:t.get(c),children:f(p),metadata:{source:"tag",kind:"tag"}})}return f(i)}function sn(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function we(e,n,r=0,o={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(r>=128||o.active.has(e))return n.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];o.active.add(e);let t=[];for(let d of e){if(o.remaining<=0){o.warned||n.push("Tag group limit (10,000) reached; remaining groups were omitted."),o.warned=!0;break}let i=l(d);if(!i||typeof i.name!="string")continue;o.remaining--;let c={name:i.name};Array.isArray(i.tags)&&(c.tags=i.tags.filter(s=>typeof s=="string")),Array.isArray(i.groups)&&(c.groups=we(i.groups,n,r+1,o)),t.push(c)}return o.active.delete(e),t}function ke(e,n,r,o,t,d=0){let i=[];if(e.tags)for(let c of e.tags){let s=n.get(c);if(!s||s.length===0)continue;let p=s.map(a=>J(a,t,"tag-group",c));i.push({id:`tag:${c}`,name:r.get(c)??c,order:o.get(c),children:f(p),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let c of e.groups)i.push(ke(c,n,r,o,t,d+1));return{id:`tag-group:${e.name}`,name:e.name,order:d*1e3,children:f(i),metadata:{source:"tag-group",kind:"tag-group"}}}function an(e,n,r,o,t){let d=new Map,i=new Map,c=new Map;for(let u=0;u<n.length;u+=1)i.set(n[u].name,u),c.set(n[u].name,n[u].displayName);for(let u of r){if(K(u.raw,o.showInternal))continue;let m=u.tags.length>0?u.tags:["Other"];for(let g of m){let T=d.get(g)??[];T.push(u),d.set(g,T)}}let p=we(e["x-tagGroups"],t).map(u=>ke(u,d,c,i,o)),a=d.get("Other");if(a&&a.length>0){let u=a.map(m=>J(m,o,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(u),metadata:{source:"fallback",kind:"tag"}})}return f(p)}function dn(e,n){if(!n.showComponents)return;let r=l(e.components),o=l(r?.schemas);if(!o)return;let t=[];for(let[d,i]of Object.entries(o)){let c=l(i);!c||K(c,n.showInternal)||t.push({id:`schema:${d}`,name:d,order:ee(c),metadata:{description:h(c.description),pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(t),metadata:{source:"tag",kind:"component"}}}function cn(e){let n=new Map,r=_(e);for(let o=r.length-1;o>=0;o--){let t=r[o].node,d=t.children?.map(c=>n.get(c)).filter(Boolean),i=(t.metadata?.kind==="operation"?1:0)+(d?.reduce((c,s)=>c+(s.metadata?.operationCount??0),0)??0);n.set(t,{...t,children:d,metadata:{...t.metadata,operationCount:i}})}return e.map(o=>n.get(o))}function De(e,n={}){let r={...ze,...n},o=[],t=l(e);if(!t)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=en(t),i=nn(t),c;tn(i)?c=rn(i,d,r,o):sn(t)?c=an(t,i,d,r,o):c=on(i,d,r);let s=dn(t,r),p=cn([...c,...s?[s]:[]]);return{root:{id:"root",name:"API Documentation",children:f(p),metadata:{kind:"root"}},warnings:o}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,countNodes,filterTree,findNode,findPath,findSchemaNodeByPath,flattenTree,formatSchemaType,getBranchIds,getExpandableIds,getLeaves,getMaxDepth,insertChild,isTreeNode,moveNode,removeNode,reorderNode,sortNodes,sortTree,updateNode});
|
|
1
|
+
"use strict";var v=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Se=Object.getOwnPropertyNames;var xe=Object.prototype.hasOwnProperty;var Ie=(e,n)=>{for(var o in n)v(e,o,{get:n[o],enumerable:!0})},$e=(e,n,o,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of Se(n))!xe.call(e,t)&&t!==o&&v(e,t,{get:()=>n[t],enumerable:!(r=Ae(n,t))||r.enumerable});return e};var Ce=e=>$e(v({},"__esModule",{value:!0}),e);var pn={};Ie(pn,{buildDocTree:()=>De,buildOpenApiTree:()=>ge,buildSchemaTree:()=>ye,countNodes:()=>oe,filterTree:()=>ae,findNode:()=>C,findPath:()=>H,findSchemaNodeByPath:()=>Oe,flattenTree:()=>_,formatSchemaType:()=>be,getBranchIds:()=>de,getExpandableIds:()=>W,getLeaves:()=>re,getMaxDepth:()=>ie,insertChild:()=>ce,isTreeNode:()=>te,moveNode:()=>me,removeNode:()=>X,reorderNode:()=>ue,sortNodes:()=>g,sortTree:()=>se,updateNode:()=>M});module.exports=Ce(pn);function te(e){return e!=null}function*A(e,n=1/0){let o=new Set,r=[];for(let t=e.length-1;t>=0;t--)r.push({node:e[t],depth:1});for(;r.length;){let t=r.pop();if(o.has(t.node)||t.depth>n)continue;o.add(t.node),yield t;let a=t.node.children??[];for(let i=a.length-1;i>=0;i--)r.push({node:a[i],parent:t,depth:t.depth+1})}}function C(e,n){for(let{node:o}of A(e))if(o.id===n)return o}function H(e,n,o=[]){for(let r of A(e)){if(r.node.id!==n)continue;let t=[],a=r;for(;a;)t.push(a.node),a=a.parent;t.reverse();let i=[...o,...t];return{nodes:i,target:r.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(d=>d.id)}}return null}function re(e){let n=[];for(let{node:o}of A(e))o.children?.length||n.push(o);return n}function oe(e){let n=0;for(let o of A(e))n++;return n}function ie(e){let n=0;for(let o of A(e))n=Math.max(n,o.depth);return n}var Me=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function g(e){return[...e].sort((n,o)=>{let r=(n.order??Number.MAX_SAFE_INTEGER)-(o.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(r)?0:r)||Me.compare(n.name,o.name)||n.id.localeCompare(o.id)})}function F(e,n,o=()=>!0){let r=new Set,t=new Map,a=[{source:e,output:[],index:0}];for(;a.length;){let i=a[a.length-1];if(i.index<i.source.length){let s=i.source[i.index++];if(r.has(s))continue;if(t.has(s)){let p=t.get(s);p&&i.output.push(p)}else if(s.children?.length&&o(s))r.add(s),a.push({source:s.children,output:[],index:0,owner:s});else{let p=n(s);t.set(s,p),p&&i.output.push(p)}continue}a.pop();let d=i.source.length===i.output.length&&i.source.every((s,p)=>s===i.output[p])?i.source:i.output;if(!i.owner)return d;let c=i.owner,u=n(d===c.children?c:{...c,children:d});r.delete(c),t.set(c,u),u&&a[a.length-1].output.push(u)}return e}function se(e){return g(F(e,n=>n.children?.length?{...n,children:g(n.children)}:n))}function ae(e,n){let o=n.query.trim().toLowerCase();return o?F(e,r=>r.name.toLowerCase().includes(o)||r.id.toLowerCase().includes(o)||(n.keepAncestors??!0)&&r.children?.length?r:null):e}function W(e,n={}){let o=[];for(let{node:r,depth:t}of A(e,n.maxDepth??1/0))t<=(n.maxDepth??1/0)&&(!(n.onlyWithChildren??!0)||r.children?.length)&&o.push(r.id);return o}function de(e){return W(e)}function _(e){return Array.from(A(e),({node:n,depth:o})=>({node:n,depth:o}))}function M(e,n,o){return F(e,r=>r.id===n?o(r):r,r=>r.id!==n)}function X(e,n){return F(e,o=>o.id===n?null:o,o=>o.id!==n)}function ce(e,n,o){return M(e,n,r=>({...r,children:[...r.children??[],o]}))}function pe(e,n){return Math.max(0,Math.min(Number.isNaN(e)?0:Math.trunc(e),n))}function ue(e,n,o){let r=H(e,n);if(!r)return null;let t=r.parent?.children??e,a=t.indexOf(r.target),i=pe(o,t.length-1),d={nodes:e,moved:r.target,parentId:r.parent?.id??null,fromIndex:a,toIndex:i};if(i===a)return d;let c=[...t];return c.splice(a,1),c.splice(i,0,r.target),{...d,nodes:r.parent?M(e,r.parent.id,u=>({...u,children:c})):c}}function me(e,n,o,r){let t=C(e,n);if(!t||o!==null&&(!C(e,o)||C([t],o)))return null;let a=X(e,n),i=d=>{let c=[...d];return c.splice(pe(r??c.length,c.length),0,t),c};return o===null?i(a):M(a,o,d=>({...d,children:i(d.children??[])}))}function U(e,n,o){let r=new Map;for(let c of e)r.has(c.name)?o.push(`Duplicate tag "${c.name}" was ignored.`):r.set(c.name,c);let t=new Map;for(let c of r.values())c.parent&&!r.has(c.parent)&&o.push(`Tag "${c.name}" references unknown parent "${c.parent}", treating as root.`),t.set(c.name,c.parent&&r.has(c.parent)?c.parent:null);let a=new Set;for(let c of r.keys()){let u=new Set,s=c;for(;s!==null&&!a.has(s);){if(u.has(s)){o.push(`Circular tag reference detected at "${s}". Breaking cycle.`),t.set(s,null);break}u.add(s),s=t.get(s)??null}for(let p of u)a.add(p)}let i=new Map(Array.from(r,([c,u])=>[c,n(u)])),d=[];for(let[c,u]of i){let s=t.get(c);if(s==null)d.push(u);else{let p=i.get(s);(p.children??(p.children=[])).push(u)}}for(let c of i.values())c.children&&(c.children=g(c.children));return g(d)}var fe=["get","put","post","delete","options","head","patch","trace"],Ee={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Ge(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function j(e){return typeof e=="boolean"?e:void 0}function E(e){return Array.isArray(e)?e:void 0}function G(e,n){return n?!1:j(e["x-scalar-ignore"])===!0||j(e["x-internal"])===!0}function R(e){return Ge(e["x-order"])}function qe(e){return w(e["x-displayName"])}function Pe(e){let n=y(e.paths);if(!n)return[];let o=[];for(let[r,t]of Object.entries(n)){let a=y(t);if(a)for(let i of fe){let d=a[i];if(d==null)continue;let c=y(d);if(!c)continue;let u=w(c.operationId),s=w(c.summary),p=E(c.tags)?.filter(l=>typeof l=="string").map(l=>l.trim()).filter(l=>l.length>0)??[],m=s??u??`${i.toUpperCase()} ${r}`,f=u??`${i}:${r}`,T=`/paths/${encodeURIComponent(r)}/${i}`;o.push({id:f,path:r,method:i,name:m,summary:s,operationId:u,deprecated:j(c.deprecated)===!0,tags:p,pointer:T,raw:c})}}return o}function Je(e){let n=E(e.tags);if(!n)return[];let o=[];for(let r of n){let t=y(r),a=w(t?.name);!a||!t||o.push({name:a,displayName:qe(t)??a,description:w(t.description),parent:w(t.parent),order:R(t),raw:t})}return o}function Be(e){return e.some(n=>n.parent!==void 0)}function z(e){return{id:`op:root:${e.id}`,name:e.name,order:R(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function Fe(e,n,o,r){let t=new Map,a=[];for(let s of n)if(!G(s.raw,o.showInternal)){if(s.tags.length===0){a.push(s);continue}for(let p of s.tags){let m=t.get(p)??[];m.push(s),t.set(p,m)}}let i=s=>{let m=(t.get(s.name)??[]).map(f=>({id:`op:${s.name}:${f.id}`,name:f.name,order:R(f.raw),metadata:{method:f.method,path:f.path,operationId:f.operationId,deprecated:f.deprecated,summary:f.summary,pointer:f.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${s.name}`,name:s.displayName,order:s.order,children:g(m),metadata:{source:"oas32-parent",kind:"tag"}}},d=new Set(e.map(s=>s.name)),c=[...e];for(let s of t.keys())d.has(s)||c.push({name:s,displayName:s,raw:{}});let u=U(c,i,r);return g([...u,...a.map(z)])}function _e(e){let n=E(e["x-tagGroups"]);if(!n)return[];let o=(r,t)=>{let a=y(r),i=w(a?.name),d=E(a?.tags)?.filter(u=>typeof u=="string").map(u=>u.trim()).filter(u=>u.length>0)??[];if(!i)return null;let c=E(a?.groups)?.map((u,s)=>o(u,s)).filter(u=>u!==null)??[];return{name:i,tags:d,groups:c.length>0?c:void 0,order:R(a??{})??t}};return n.map((r,t)=>o(r,t)).filter(r=>r!==null)}function Ue(e,n,o,r){let t=new Map;for(let s of n)t.set(s.name,s.displayName);let a=new Map,i=[];for(let s of o)if(!G(s.raw,r.showInternal)){if(s.tags.length===0){i.push(s);continue}for(let p of s.tags){let m=a.get(p)??[];m.push(s),a.set(p,m)}}let d=s=>(a.get(s)??[]).map(m=>({id:`op:${s}:${m.id}`,name:m.name,order:R(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),c=s=>({id:`tag:${s}`,name:t.get(s)??s,children:g(d(s)),metadata:{source:"tag-group",kind:"tag"}}),u=s=>{let p=[];for(let m of s.tags)a.get(m)?.length&&p.push(c(m));for(let m of s.groups??[])p.push(u(m));return{id:`tag-group:${s.name}`,name:s.name,order:s.order,children:g(p),metadata:{source:"tag-group",kind:"tag-group"}}};return g([...e.map(u),...i.map(z)])}function je(e,n,o){let r=new Map,t=[],a=new Map;for(let p=0;p<e.length;p+=1){let m=e[p];a.set(m.name,m.order??p)}for(let p of n)if(!G(p.raw,o.showInternal)){if(p.tags.length===0){t.push(p);continue}for(let m of p.tags){let f=r.get(m)??[];f.push(p),r.set(m,f)}}let i=new Map;for(let p of e)i.set(p.name,p.displayName);let d=(p,m)=>{let T=(r.get(p)??[]).map(l=>({id:`op:${p}:${l.id}`,name:l.name,order:R(l.raw),metadata:{method:l.method,path:l.path,operationId:l.operationId,deprecated:l.deprecated,summary:l.summary,pointer:l.pointer,source:"tag",kind:"operation"}}));return{id:`tag:${p}`,name:i.get(p)??p,order:a.get(p)??m,children:g(T),metadata:{source:"tag",kind:"tag"}}},c=[],u=new Set;e.forEach((p,m)=>{u.add(p.name),c.push(d(p.name,m))});let s=e.length;for(let p of r.keys())u.has(p)||(c.push(d(p,s)),s+=1);return g([...c,...t.map(z)])}function Le(e,n){if(!n.showComponents)return;let o=y(e.components),r=y(o?.schemas);if(!r)return;let t=[];for(let[a,i]of Object.entries(r)){let d=y(i);!d||G(d,n.showInternal)||t.push({id:`schema:${a}`,name:a,order:R(d),metadata:{pointer:`/components/schemas/${encodeURIComponent(a)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(t),metadata:{source:"section",kind:"section",section:"components"}}}function Ke(e,n){if(!n.showWebhooks)return;let o=y(e.webhooks);if(!o)return;let r=[];for(let[t,a]of Object.entries(o)){let i=y(a);if(i)for(let d of fe){let c=i[d],u=y(c);if(!u||G(u,n.showInternal))continue;let s=w(u.operationId),p=w(u.summary),m=p??s??`${d.toUpperCase()} ${t}`;r.push({id:`webhook:${t}:${d}`,name:m,order:R(u),metadata:{method:d,path:t,operationId:s,deprecated:j(u.deprecated)===!0,summary:p,pointer:`/webhooks/${encodeURIComponent(t)}/${d}`,source:"tag",kind:"webhook"}})}}if(r.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:g(r),metadata:{source:"section",kind:"section",section:"webhooks"}}}function ge(e,n={}){let o={...Ee,...n},r=[],t=y(e);if(!t)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let a=Pe(t),i=Je(t),d;if(Be(i))d=Fe(i,a,o,r);else{let m=_e(t);m.length>0?d=Ue(m,i,a,o):d=je(i,a,o)}let c=Ke(t,o),u=Le(t,o),p=[{id:"section:apis",name:"APIs",children:d,metadata:{kind:"section",source:"section",section:"apis"},order:0},...c?[c]:[],...u?[u]:[]];return{root:{id:"root",name:"OpenAPI",children:g(p),metadata:{kind:"root"}},warnings:r}}var le={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},V={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},he=new Set(["string","number","integer","boolean","null"]);function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Y(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Te(e){return typeof e=="boolean"?e:void 0}function Q(e){return Array.isArray(e)?e:void 0}function ve(e){let n=e.type;if(typeof n=="string"||Array.isArray(n)&&n.every(o=>typeof o=="string"))return n}function He(e){return e?Array.isArray(e)?e.every(n=>he.has(n)):he.has(e):!1}function We(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Ne(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function x(e){return e.map(n=>n.replace(/[\\.\[\]]/g,o=>`\\${o}`)).join(".")||"root"}function L(e,n,o,r,t,a){t.remaining--;let i=ve(n),d=Y(n.format),c=Y(n.description),u=Te(n.deprecated)===!0,s=We(i),p={jsonPath:o,type:i,format:d,required:a,deprecated:u,description:c,kind:s},m=Y(n.$ref);if(m){if(t.refStack.has(m))return t.warnings.push(`Circular $ref detected at ${o.join(".")}: ${m}. Breaking recursion.`),{id:x(o),name:e,metadata:{...p,kind:"ref",isLeaf:!0}};t.refStack.add(m)}let f,T=He(i),l=t.activeSchemas.has(n);if(l&&t.warnings.push(`Circular schema object detected at ${x(o)}.`),l||r>=t.options.maxDepth||t.remaining<=0)return m&&t.refStack.delete(m),{id:x(o),name:e,metadata:{...p,isLeaf:!0}};t.activeSchemas.add(n);let k=q(n.properties);if(k){let S=Q(n.required)??[],O=new Set(S.filter(b=>typeof b=="string")),B=[];for(let[b,I]of Object.entries(k)){if(t.remaining<=0)break;let $=q(I);$&&(!t.options.showDeprecated&&Te($.deprecated)===!0||B.push(L(b,$,[...o,"properties",b],r+1,t,O.has(b))))}f=[...f??[],...g(B)],T=!1}if(t.remaining>0&&t.options.showArrayItems&&i==="array"){let S=q(n.items);if(S){let O=L("items",S,[...o,"items"],r+1,t,!1);f=[...f??[],O],T=!1}else p.hasItems=!1}if(t.options.expandCombinators){let S=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:O,kind:B}of S){if(t.remaining<=0)break;let b=Q(n[O]);if(!b?.length)continue;t.remaining--;let I=[];for(let D=0;D<b.length&&t.remaining>0;D++){let Re=b[D],ne=q(Re);if(!ne){t.remaining--,I.push({id:x([...o,O,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...o,O,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(L(`[${D}]`,ne,[...o,O,String(D)],r+1,t,!1))}let $={id:x([...o,O]),name:O,children:g(I),metadata:{jsonPath:[...o,O],kind:B}};f=[...f??[],$],T=!1}}return Q(n.enum)?.length&&!f?.length&&(p.kind="enum",T=!0),m&&t.refStack.delete(m),t.activeSchemas.delete(n),{id:x(o),name:e,order:Object.prototype.hasOwnProperty.call(le,e)?le[e]:void 0,metadata:{...p,isLeaf:T},children:f}}function ye(e,n={}){let o={...V,...n};o.maxDepth=Number.isFinite(o.maxDepth)?Math.min(128,Math.max(0,Math.trunc(o.maxDepth))):V.maxDepth,o.maxNodes=Number.isFinite(o.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(o.maxNodes))):V.maxNodes;let r=[],t=q(e);if(!t)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let a={options:o,warnings:r,refStack:new Set,activeSchemas:new Set,remaining:o.maxNodes},i=L("root",t,[],0,a,!0);return a.remaining<=0&&r.push(`Schema node limit (${o.maxNodes}) reached; remaining branches were omitted.`),{root:i,warnings:r}}function Oe(e,n){if(n.length===0)return e;let o=JSON.stringify(n),r=[e],t=new Set;for(let a=0;a<r.length;a++){let i=r[a];if(!i||t.has(i))continue;if(t.add(i),JSON.stringify(i.metadata?.jsonPath)===o)return i;for(let c of i.children??[])r.push(c)}}function be(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Ne(e.type)} (${e.format})`:Ne(e.type)}var Xe=["get","put","post","delete","options","head","patch","trace"],ze={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function h(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function N(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function P(e){return typeof e=="boolean"?e:void 0}function Z(e){return Array.isArray(e)?e:void 0}function K(e,n){return n?!1:P(e["x-scalar-ignore"])===!0||P(e["x-internal"])===!0}function ee(e){let n=e["x-order"];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Ve(e){return N(e["x-displayName"])}function Ye(e,n){let o=[];for(let r of e){let t=h(r);if(!t)continue;let a=N(t.name),i=N(t.in);if(!a||!i)continue;let d=`${i}:${a}`;o.push({id:`${n}/parameters/${encodeURIComponent(d)}`,name:a,metadata:{paramIn:i,required:P(t.required)===!0,description:N(t.description),pointer:`${n}/parameters`,kind:"parameter"}})}return g(o)}function Qe(e,n){let o=[];for(let[r,t]of Object.entries(e)){let a=h(t);if(!a)continue;let i=N(a.description),d=h(a.content),c=[];if(d)for(let[u]of Object.entries(d))c.push({id:`${n}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,name:u,metadata:{contentType:u,pointer:`${n}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,kind:"content"}});o.push({id:`${n}/responses/${encodeURIComponent(r)}`,name:r,metadata:{statusCode:r,description:i,pointer:`${n}/responses/${encodeURIComponent(r)}`,kind:"response"},children:c.length>0?c:void 0})}return g(o)}function Ze(e,n){let o=[],r=Z(e.parameters);if(r?.length){let i=Ye(r,n);i.length>0&&o.push({id:`${n}/parameters`,name:"Parameters",children:i,metadata:{pointer:`${n}/parameters`,kind:"parameters"}})}let t=h(e.requestBody);if(t){let i=h(t.content),d=[];if(i)for(let[c]of Object.entries(i))d.push({id:`${n}/requestBody/content/${encodeURIComponent(c)}`,name:c,metadata:{contentType:c,pointer:`${n}/requestBody/content/${encodeURIComponent(c)}`,kind:"content"}});o.push({id:`${n}/requestBody`,name:"Request Body",metadata:{description:N(t.description),required:P(t.required)===!0,pointer:`${n}/requestBody`,kind:"request-body"},children:d.length>0?d:void 0})}let a=h(e.responses);if(a){let i=Qe(a,n);i.length>0&&o.push({id:`${n}/responses`,name:"Responses",children:i,metadata:{pointer:`${n}/responses`,kind:"responses"}})}return o}function en(e){let n=h(e.paths);if(!n)return[];let o=[];for(let[r,t]of Object.entries(n)){let a=h(t);if(a)for(let i of Xe){let d=a[i],c=h(d);if(!c)continue;let u=N(c.operationId),s=N(c.summary),p=N(c.description),m=Z(c.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],f=s??u??`${i.toUpperCase()} ${r}`,T=u??`${i}:${r}`,l=`/paths/${encodeURIComponent(r)}/${i}`;o.push({id:T,path:r,method:i,name:f,summary:s,description:p,operationId:u,deprecated:P(c.deprecated)===!0,tags:m,pointer:l,raw:c})}}return o}function nn(e){let n=Z(e.tags);if(!n)return[];let o=[];for(let r of n){let t=h(r),a=N(t?.name);!a||!t||o.push({name:a,displayName:Ve(t)??a,description:N(t.description),parent:N(t.parent),order:ee(t)})}return o}function tn(e){return e.some(n=>n.parent!==void 0)}function J(e,n,o,r){let t=n.expandOperationDetails?Ze(e.raw,e.pointer):void 0;return{id:`op:${r}:${e.id}`,name:e.name,order:ee(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:o,kind:"operation"},children:t&&t.length>0?t:void 0}}function rn(e,n,o,r){let t=new Map;for(let s of n){if(K(s.raw,o.showInternal))continue;let p=s.tags.length>0?s.tags:["Other"];for(let m of p){let f=t.get(m)??[];f.push(s),t.set(m,f)}}let a=s=>{let m=(t.get(s.name)??[]).map(f=>J(f,o,"oas32-parent",s.name));return{id:`tag:${s.name}`,name:s.displayName,order:s.order,children:g(m),metadata:{description:s.description,source:"oas32-parent",kind:"tag"}}},i=new Set(e.map(s=>s.name)),d=[...e];for(let s of t.keys())s!=="Other"&&!i.has(s)&&d.push({name:s,displayName:s});let c=U(d,a,r),u=t.get("Other")??[];if(u.length>0&&!e.some(s=>s.name==="Other")){let s=u.map(p=>J(p,o,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(s),metadata:{source:"fallback",kind:"tag"}})}return g(c)}function on(e,n,o){let r=new Map,t=new Map;for(let d=0;d<e.length;d+=1)t.set(e[d].name,d);for(let d of n){if(K(d.raw,o.showInternal))continue;let c=d.tags.length>0?d.tags:["Other"];for(let u of c){let s=r.get(u)??[];s.push(d),r.set(u,s)}}let a=new Map;for(let d of e)a.set(d.name,d.displayName);let i=[];for(let[d,c]of r){let u=c.map(s=>J(s,o,"tag",d));i.push({id:`tag:${d}`,name:a.get(d)??d,order:d==="Other"?Number.MAX_SAFE_INTEGER:t.get(d),children:g(u),metadata:{source:"tag",kind:"tag"}})}return g(i)}function sn(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function we(e,n,o=0,r={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(o>=128||r.active.has(e))return n.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];r.active.add(e);let t=[];for(let a of e){if(r.remaining<=0){r.warned||n.push("Tag group limit (10,000) reached; remaining groups were omitted."),r.warned=!0;break}let i=h(a);if(!i||typeof i.name!="string")continue;r.remaining--;let d={name:i.name};Array.isArray(i.tags)&&(d.tags=i.tags.filter(c=>typeof c=="string")),Array.isArray(i.groups)&&(d.groups=we(i.groups,n,o+1,r)),t.push(d)}return r.active.delete(e),t}function ke(e,n,o,r,t,a=0){let i=[];if(e.tags)for(let d of e.tags){let c=n.get(d);if(!c||c.length===0)continue;let u=c.map(s=>J(s,t,"tag-group",d));i.push({id:`tag:${d}`,name:o.get(d)??d,order:r.get(d),children:g(u),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let d of e.groups)i.push(ke(d,n,o,r,t,a+1));return{id:`tag-group:${e.name}`,name:e.name,order:a*1e3,children:g(i),metadata:{source:"tag-group",kind:"tag-group"}}}function an(e,n,o,r,t){let a=new Map,i=new Map,d=new Map;for(let p=0;p<n.length;p+=1)i.set(n[p].name,p),d.set(n[p].name,n[p].displayName);for(let p of o){if(K(p.raw,r.showInternal))continue;let m=p.tags.length>0?p.tags:["Other"];for(let f of m){let T=a.get(f)??[];T.push(p),a.set(f,T)}}let u=we(e["x-tagGroups"],t).map(p=>ke(p,a,d,i,r)),s=a.get("Other");if(s&&s.length>0){let p=s.map(m=>J(m,r,"fallback","Other"));u.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(p),metadata:{source:"fallback",kind:"tag"}})}return g(u)}function dn(e,n){if(!n.showComponents)return;let o=h(e.components),r=h(o?.schemas);if(!r)return;let t=[];for(let[a,i]of Object.entries(r)){let d=h(i);!d||K(d,n.showInternal)||t.push({id:`schema:${a}`,name:a,order:ee(d),metadata:{description:N(d.description),pointer:`/components/schemas/${encodeURIComponent(a)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(t),metadata:{source:"tag",kind:"component"}}}function cn(e){let n=new Map,o=_(e);for(let r=o.length-1;r>=0;r--){let t=o[r].node,a=t.children?.map(d=>n.get(d)).filter(Boolean),i=(t.metadata?.kind==="operation"?1:0)+(a?.reduce((d,c)=>d+(c.metadata?.operationCount??0),0)??0);n.set(t,{...t,children:a,metadata:{...t.metadata,operationCount:i}})}return e.map(r=>n.get(r))}function De(e,n={}){let o={...ze,...n},r=[],t=h(e);if(!t)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let a=en(t),i=nn(t),d;tn(i)?d=rn(i,a,o,r):sn(t)?d=an(t,i,a,o,r):d=on(i,a,o);let c=dn(t,o),u=cn([...d,...c?[c]:[]]);return{root:{id:"root",name:"API Documentation",children:g(u),metadata:{kind:"root"}},warnings:r}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,countNodes,filterTree,findNode,findPath,findSchemaNodeByPath,flattenTree,formatSchemaType,getBranchIds,getExpandableIds,getLeaves,getMaxDepth,insertChild,isTreeNode,moveNode,removeNode,reorderNode,sortNodes,sortTree,updateNode});
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l,b as n,c as q,d as s,e as u}from"./chunk-
|
|
1
|
+
import{a as l,b as n,c as q,d as s,e as u}from"./chunk-FUR7BOZE.js";import"./chunk-NHPRTISE.js";import{a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i,p as j,q as k}from"./chunk-AHHDXXHL.js";export{u as buildDocTree,l as buildOpenApiTree,n as buildSchemaTree,m as countNodes,a as filterTree,r as findNode,e as findPath,q as findSchemaNodeByPath,d as flattenTree,s as formatSchemaType,c as getBranchIds,b as getExpandableIds,f as getLeaves,p as getMaxDepth,i as insertChild,o as isTreeNode,k as moveNode,h as removeNode,j as reorderNode,t as sortNodes,x as sortTree,g as updateNode};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerduck/tree",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.18",
|
|
4
4
|
"description": "Extensible tree component for API navigation, schema exploration, and documentation. Supports OpenAPI 3.2 nested tags, x-tagGroups, and custom data sources.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "powerduck",
|
package/dist/chunk-KPRGJSJS.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as f,l as X}from"./chunk-AHHDXXHL.js";function P(e,t,a){let o=new Map;for(let i of e)o.has(i.name)?a.push(`Duplicate tag "${i.name}" was ignored.`):o.set(i.name,i);let n=new Map;for(let i of o.values())i.parent&&!o.has(i.parent)&&a.push(`Tag "${i.name}" references unknown parent "${i.parent}", treating as root.`),n.set(i.name,i.parent&&o.has(i.parent)?i.parent:null);let c=new Set;for(let i of o.keys()){let p=new Set,r=i;for(;r!==null&&!c.has(r);){if(p.has(r)){a.push(`Circular tag reference detected at "${r}". Breaking cycle.`),n.set(r,null);break}p.add(r),r=n.get(r)??null}for(let u of p)c.add(u)}let d=new Map(Array.from(o,([i,p])=>[i,t(p)])),s=[];for(let[i,p]of d){let r=n.get(i);if(r==null)s.push(p);else{let u=d.get(r);(u.children??(u.children=[])).push(p)}}for(let i of d.values())i.children&&(i.children=f(i.children));return f(s)}var z=["get","put","post","delete","options","head","patch","trace"],te={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function O(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function oe(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function B(e){return typeof e=="boolean"?e:void 0}function C(e){return Array.isArray(e)?e:void 0}function M(e,t){return t?!1:B(e["x-scalar-ignore"])===!0||B(e["x-internal"])===!0}function R(e){return oe(e["x-order"])}function re(e){return w(e["x-displayName"])}function ae(e){let t=O(e.paths);if(!t)return[];let a=[];for(let[o,n]of Object.entries(t)){let c=O(n);if(c)for(let d of z){let s=c[d];if(s==null)continue;let i=O(s);if(!i)continue;let p=w(i.operationId),r=w(i.summary),u=C(i.tags)?.filter(y=>typeof y=="string").map(y=>y.trim()).filter(y=>y.length>0)??[],m=r??p??`${d.toUpperCase()} ${o}`,g=p??`${d}:${o}`,T=`/paths/${encodeURIComponent(o)}/${d}`;a.push({id:g,path:o,method:d,name:m,summary:r,operationId:p,deprecated:B(i.deprecated)===!0,tags:u,pointer:T,raw:i})}}return a}function ie(e){let t=C(e.tags);if(!t)return[];let a=[];for(let o of t){let n=O(o),c=w(n?.name);!c||!n||a.push({name:c,displayName:re(n)??c,description:w(n.description),parent:w(n.parent),order:R(n),raw:n})}return a}function se(e){return e.some(t=>t.parent!==void 0)}function _(e){return{id:`op:root:${e.id}`,name:e.name,order:R(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function de(e,t,a,o){let n=new Map,c=[];for(let r of t)if(!M(r.raw,a.showInternal)){if(r.tags.length===0){c.push(r);continue}for(let u of r.tags){let m=n.get(u)??[];m.push(r),n.set(u,m)}}let d=r=>{let m=(n.get(r.name)??[]).map(g=>({id:`op:${r.name}:${g.id}`,name:g.name,order:R(g.raw),metadata:{method:g.method,path:g.path,operationId:g.operationId,deprecated:g.deprecated,summary:g.summary,pointer:g.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${r.name}`,name:r.displayName,order:r.order,children:f(m),metadata:{source:"oas32-parent",kind:"tag"}}},s=new Set(e.map(r=>r.name)),i=[...e];for(let r of n.keys())s.has(r)||i.push({name:r,displayName:r,raw:{}});let p=P(i,d,o);return f([...p,...c.map(_)])}function ce(e){let t=C(e["x-tagGroups"]);if(!t)return[];let a=(o,n)=>{let c=O(o),d=w(c?.name),s=C(c?.tags)?.filter(p=>typeof p=="string").map(p=>p.trim()).filter(p=>p.length>0)??[];if(!d)return null;let i=C(c?.groups)?.map((p,r)=>a(p,r)).filter(p=>p!==null)??[];return{name:d,tags:s,groups:i.length>0?i:void 0,order:R(c??{})??n}};return t.map((o,n)=>a(o,n)).filter(o=>o!==null)}function pe(e,t,a,o){let n=new Map;for(let r of t)n.set(r.name,r.displayName);let c=new Map,d=[];for(let r of a)if(!M(r.raw,o.showInternal)){if(r.tags.length===0){d.push(r);continue}for(let u of r.tags){let m=c.get(u)??[];m.push(r),c.set(u,m)}}let s=r=>(c.get(r)??[]).map(m=>({id:`op:${r}:${m.id}`,name:m.name,order:R(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),i=r=>({id:`tag:${r}`,name:n.get(r)??r,children:f(s(r)),metadata:{source:"tag-group",kind:"tag"}}),p=r=>{let u=[];for(let m of r.tags)c.get(m)?.length&&u.push(i(m));for(let m of r.groups??[])u.push(p(m));return{id:`tag-group:${r.name}`,name:r.name,order:r.order,children:f(u),metadata:{source:"tag-group",kind:"tag-group"}}};return f([...e.map(p),...d.map(_)])}function ue(e,t,a){let o=new Map,n=[],c=new Map;for(let i=0;i<e.length;i+=1){let p=e[i];c.set(p.name,p.order??i)}for(let i of t)if(!M(i.raw,a.showInternal)){if(i.tags.length===0){n.push(i);continue}for(let p of i.tags){let r=o.get(p)??[];r.push(i),o.set(p,r)}}let d=new Map;for(let i of e)d.set(i.name,i.displayName);let s=[];for(let[i,p]of o){let r=p.map(u=>({id:`op:${i}:${u.id}`,name:u.name,order:R(u.raw),metadata:{method:u.method,path:u.path,operationId:u.operationId,deprecated:u.deprecated,summary:u.summary,pointer:u.pointer,source:"tag",kind:"operation"}}));s.push({id:`tag:${i}`,name:d.get(i)??i,order:c.get(i),children:f(r),metadata:{source:"tag",kind:"tag"}})}return f([...s,...n.map(_)])}function me(e,t){if(!t.showComponents)return;let a=O(e.components),o=O(a?.schemas);if(!o)return;let n=[];for(let[c,d]of Object.entries(o)){let s=O(d);!s||M(s,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:R(s),metadata:{pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"section",kind:"section",section:"components"}}}function ge(e,t){if(!t.showWebhooks)return;let a=O(e.webhooks);if(!a)return;let o=[];for(let[n,c]of Object.entries(a)){let d=O(c);if(d)for(let s of z){let i=d[s],p=O(i);if(!p||M(p,t.showInternal))continue;let r=w(p.operationId),u=w(p.summary),m=u??r??`${s.toUpperCase()} ${n}`;o.push({id:`webhook:${n}:${s}`,name:m,order:R(p),metadata:{method:s,path:n,operationId:r,deprecated:B(p.deprecated)===!0,summary:u,pointer:`/webhooks/${encodeURIComponent(n)}/${s}`,source:"tag",kind:"webhook"}})}}if(o.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}}function fe(e,t={}){let a={...te,...t},o=[],n=O(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=ae(n),d=ie(n),s;if(se(d))s=de(d,c,a,o);else{let m=ce(n);m.length>0?s=pe(m,d,c,a):s=ue(d,c,a)}let i=ge(n,a),p=me(n,a),u=[{id:"section:apis",name:"APIs",children:s,metadata:{kind:"section",source:"section",section:"apis"},order:0},...i?[i]:[],...p?[p]:[]];return{root:{id:"root",name:"OpenAPI",children:f(u),metadata:{kind:"root"}},warnings:o}}var V={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},j={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Y=new Set(["string","number","integer","boolean","null"]);function x(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function F(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Q(e){return typeof e=="boolean"?e:void 0}function L(e){return Array.isArray(e)?e:void 0}function le(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(a=>typeof a=="string"))return t}function he(e){return e?Array.isArray(e)?e.every(t=>Y.has(t)):Y.has(e):!1}function Te(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Z(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,a=>`\\${a}`)).join(".")||"root"}function E(e,t,a,o,n,c){n.remaining--;let d=le(t),s=F(t.format),i=F(t.description),p=Q(t.deprecated)===!0,r=Te(d),u={jsonPath:a,type:d,format:s,required:c,deprecated:p,description:i,kind:r},m=F(t.$ref);if(m){if(n.refStack.has(m))return n.warnings.push(`Circular $ref detected at ${a.join(".")}: ${m}. Breaking recursion.`),{id:S(a),name:e,metadata:{...u,kind:"ref",isLeaf:!0}};n.refStack.add(m)}let g,T=he(d),y=n.activeSchemas.has(t);if(y&&n.warnings.push(`Circular schema object detected at ${S(a)}.`),y||o>=n.options.maxDepth||n.remaining<=0)return m&&n.refStack.delete(m),{id:S(a),name:e,metadata:{...u,isLeaf:!0}};n.activeSchemas.add(t);let k=x(t.properties);if(k){let A=L(t.required)??[],N=new Set(A.filter(b=>typeof b=="string")),J=[];for(let[b,$]of Object.entries(k)){if(n.remaining<=0)break;let I=x($);I&&(!n.options.showDeprecated&&Q(I.deprecated)===!0||J.push(E(b,I,[...a,"properties",b],o+1,n,N.has(b))))}g=[...g??[],...f(J)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&d==="array"){let A=x(t.items);if(A){let N=E("items",A,[...a,"items"],o+1,n,!1);g=[...g??[],N],T=!1}else u.hasItems=!1}if(n.options.expandCombinators){let A=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:N,kind:J}of A){if(n.remaining<=0)break;let b=L(t[N]);if(!b?.length)continue;n.remaining--;let $=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ne=b[D],W=x(ne);if(!W){n.remaining--,$.push({id:S([...a,N,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...a,N,String(D)],kind:"unknown",isLeaf:!0}});continue}$.push(E(`[${D}]`,W,[...a,N,String(D)],o+1,n,!1))}let I={id:S([...a,N]),name:N,children:f($),metadata:{jsonPath:[...a,N],kind:J}};g=[...g??[],I],T=!1}}return L(t.enum)?.length&&!g?.length&&(u.kind="enum",T=!0),m&&n.refStack.delete(m),n.activeSchemas.delete(t),{id:S(a),name:e,order:Object.prototype.hasOwnProperty.call(V,e)?V[e]:void 0,metadata:{...u,isLeaf:T},children:g}}function Oe(e,t={}){let a={...j,...t};a.maxDepth=Number.isFinite(a.maxDepth)?Math.min(128,Math.max(0,Math.trunc(a.maxDepth))):j.maxDepth,a.maxNodes=Number.isFinite(a.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(a.maxNodes))):j.maxNodes;let o=[],n=x(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let c={options:a,warnings:o,refStack:new Set,activeSchemas:new Set,remaining:a.maxNodes},d=E("root",n,[],0,c,!0);return c.remaining<=0&&o.push(`Schema node limit (${a.maxNodes}) reached; remaining branches were omitted.`),{root:d,warnings:o}}function Ne(e,t){if(t.length===0)return e;let a=JSON.stringify(t),o=[e],n=new Set;for(let c=0;c<o.length;c++){let d=o[c];if(!d||n.has(d))continue;if(n.add(d),JSON.stringify(d.metadata?.jsonPath)===a)return d;for(let i of d.children??[])o.push(i)}}function ye(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Z(e.type)} (${e.format})`:Z(e.type)}var be=["get","put","post","delete","options","head","patch","trace"],we={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function q(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function U(e,t){return t?!1:q(e["x-scalar-ignore"])===!0||q(e["x-internal"])===!0}function H(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function ke(e){return h(e["x-displayName"])}function De(e,t){let a=[];for(let o of e){let n=l(o);if(!n)continue;let c=h(n.name),d=h(n.in);if(!c||!d)continue;let s=`${d}:${c}`;a.push({id:`${t}/parameters/${encodeURIComponent(s)}`,name:c,metadata:{paramIn:d,required:q(n.required)===!0,description:h(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return f(a)}function Re(e,t){let a=[];for(let[o,n]of Object.entries(e)){let c=l(n);if(!c)continue;let d=h(c.description),s=l(c.content),i=[];if(s)for(let[p]of Object.entries(s))i.push({id:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,name:p,metadata:{contentType:p,pointer:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,kind:"content"}});a.push({id:`${t}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:d,pointer:`${t}/responses/${encodeURIComponent(o)}`,kind:"response"},children:i.length>0?i:void 0})}return f(a)}function Ae(e,t){let a=[],o=K(e.parameters);if(o?.length){let d=De(o,t);d.length>0&&a.push({id:`${t}/parameters`,name:"Parameters",children:d,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=l(e.requestBody);if(n){let d=l(n.content),s=[];if(d)for(let[i]of Object.entries(d))s.push({id:`${t}/requestBody/content/${encodeURIComponent(i)}`,name:i,metadata:{contentType:i,pointer:`${t}/requestBody/content/${encodeURIComponent(i)}`,kind:"content"}});a.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:h(n.description),required:q(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:s.length>0?s:void 0})}let c=l(e.responses);if(c){let d=Re(c,t);d.length>0&&a.push({id:`${t}/responses`,name:"Responses",children:d,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return a}function Se(e){let t=l(e.paths);if(!t)return[];let a=[];for(let[o,n]of Object.entries(t)){let c=l(n);if(c)for(let d of be){let s=c[d],i=l(s);if(!i)continue;let p=h(i.operationId),r=h(i.summary),u=h(i.description),m=K(i.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],g=r??p??`${d.toUpperCase()} ${o}`,T=p??`${d}:${o}`,y=`/paths/${encodeURIComponent(o)}/${d}`;a.push({id:T,path:o,method:d,name:g,summary:r,description:u,operationId:p,deprecated:q(i.deprecated)===!0,tags:m,pointer:y,raw:i})}}return a}function $e(e){let t=K(e.tags);if(!t)return[];let a=[];for(let o of t){let n=l(o),c=h(n?.name);!c||!n||a.push({name:c,displayName:ke(n)??c,description:h(n.description),parent:h(n.parent),order:H(n)})}return a}function Ie(e){return e.some(t=>t.parent!==void 0)}function G(e,t,a,o){let n=t.expandOperationDetails?Ae(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:H(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:a,kind:"operation"},children:n&&n.length>0?n:void 0}}function Ce(e,t,a,o){let n=new Map;for(let r of t){if(U(r.raw,a.showInternal))continue;let u=r.tags.length>0?r.tags:["Other"];for(let m of u){let g=n.get(m)??[];g.push(r),n.set(m,g)}}let c=r=>{let m=(n.get(r.name)??[]).map(g=>G(g,a,"oas32-parent",r.name));return{id:`tag:${r.name}`,name:r.displayName,order:r.order,children:f(m),metadata:{description:r.description,source:"oas32-parent",kind:"tag"}}},d=new Set(e.map(r=>r.name)),s=[...e];for(let r of n.keys())r!=="Other"&&!d.has(r)&&s.push({name:r,displayName:r});let i=P(s,c,o),p=n.get("Other")??[];if(p.length>0&&!e.some(r=>r.name==="Other")){let r=p.map(u=>G(u,a,"fallback","Other"));i.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(r),metadata:{source:"fallback",kind:"tag"}})}return f(i)}function Me(e,t,a){let o=new Map,n=new Map;for(let s=0;s<e.length;s+=1)n.set(e[s].name,s);for(let s of t){if(U(s.raw,a.showInternal))continue;let i=s.tags.length>0?s.tags:["Other"];for(let p of i){let r=o.get(p)??[];r.push(s),o.set(p,r)}}let c=new Map;for(let s of e)c.set(s.name,s.displayName);let d=[];for(let[s,i]of o){let p=i.map(r=>G(r,a,"tag",s));d.push({id:`tag:${s}`,name:c.get(s)??s,order:s==="Other"?Number.MAX_SAFE_INTEGER:n.get(s),children:f(p),metadata:{source:"tag",kind:"tag"}})}return f(d)}function xe(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function v(e,t,a=0,o={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(a>=128||o.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];o.active.add(e);let n=[];for(let c of e){if(o.remaining<=0){o.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),o.warned=!0;break}let d=l(c);if(!d||typeof d.name!="string")continue;o.remaining--;let s={name:d.name};Array.isArray(d.tags)&&(s.tags=d.tags.filter(i=>typeof i=="string")),Array.isArray(d.groups)&&(s.groups=v(d.groups,t,a+1,o)),n.push(s)}return o.active.delete(e),n}function ee(e,t,a,o,n,c=0){let d=[];if(e.tags)for(let s of e.tags){let i=t.get(s);if(!i||i.length===0)continue;let p=i.map(r=>G(r,n,"tag-group",s));d.push({id:`tag:${s}`,name:a.get(s)??s,order:o.get(s),children:f(p),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let s of e.groups)d.push(ee(s,t,a,o,n,c+1));return{id:`tag-group:${e.name}`,name:e.name,order:c*1e3,children:f(d),metadata:{source:"tag-group",kind:"tag-group"}}}function qe(e,t,a,o,n){let c=new Map,d=new Map,s=new Map;for(let u=0;u<t.length;u+=1)d.set(t[u].name,u),s.set(t[u].name,t[u].displayName);for(let u of a){if(U(u.raw,o.showInternal))continue;let m=u.tags.length>0?u.tags:["Other"];for(let g of m){let T=c.get(g)??[];T.push(u),c.set(g,T)}}let p=v(e["x-tagGroups"],n).map(u=>ee(u,c,s,d,o)),r=c.get("Other");if(r&&r.length>0){let u=r.map(m=>G(m,o,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(u),metadata:{source:"fallback",kind:"tag"}})}return f(p)}function Ge(e,t){if(!t.showComponents)return;let a=l(e.components),o=l(a?.schemas);if(!o)return;let n=[];for(let[c,d]of Object.entries(o)){let s=l(d);!s||U(s,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:H(s),metadata:{description:h(s.description),pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"tag",kind:"component"}}}function Je(e){let t=new Map,a=X(e);for(let o=a.length-1;o>=0;o--){let n=a[o].node,c=n.children?.map(s=>t.get(s)).filter(Boolean),d=(n.metadata?.kind==="operation"?1:0)+(c?.reduce((s,i)=>s+(i.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:c,metadata:{...n.metadata,operationCount:d}})}return e.map(o=>t.get(o))}function Pe(e,t={}){let a={...we,...t},o=[],n=l(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=Se(n),d=$e(n),s;Ie(d)?s=Ce(d,c,a,o):xe(n)?s=qe(n,d,c,a,o):s=Me(d,c,a);let i=Ge(n,a),p=Je([...s,...i?[i]:[]]);return{root:{id:"root",name:"API Documentation",children:f(p),metadata:{kind:"root"}},warnings:o}}export{fe as a,Oe as b,Ne as c,ye as d,Pe as e};
|