@powerduck/tree 0.7.3 → 0.7.4

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.
@@ -1 +1 @@
1
- "use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,a={};function s(e){return[...e].sort((e,t)=>{const n=e.order??Number.MAX_SAFE_INTEGER,o=t.order??Number.MAX_SAFE_INTEGER;if(n!==o)return n-o;return e.name.localeCompare(t.name,"en-US",{numeric:!0,sensitivity:"base"})||e.id.localeCompare(t.id)})}((e,n)=>{for(var o in n)t(e,o,{get:n[o],enumerable:!0})})(a,{buildDocTree:()=>z,buildOpenApiTree:()=>y,buildSchemaTree:()=>v,findSchemaNodeByPath:()=>N,formatSchemaType:()=>C}),module.exports=(e=a,((e,a,s,i)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let c of o(a))r.call(e,c)||c===s||t(e,c,{get:()=>a[c],enumerable:!(i=n(a,c))||i.enumerable});return e})(t({},"__esModule",{value:!0}),e));var i=["get","put","post","delete","options","head","patch","trace"],c={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function d(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function p(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function u(e){return"boolean"==typeof e?e:void 0}function m(e){return Array.isArray(e)?e:void 0}function f(e,t){return!t&&(!0===u(e["x-scalar-ignore"])||!0===u(e["x-internal"]))}function h(e){return"number"==typeof(t=e["x-order"])&&Number.isFinite(t)?t:void 0;var t}function l(e){return p(e["x-displayName"])}function g(e,t,n,o){const r=new Map;for(const t of e)r.set(t.name,t);const a=new Map;for(const t of e){if(!t.parent){a.set(t.name,null);continue}if(!r.has(t.parent)){o.push(`Tag "${t.name}" references unknown parent "${t.parent}", treating as root.`),a.set(t.name,null);continue}const e=[t.name];let n=t.parent,s=!1;for(;n;){if(e.includes(n)){s=!0,o.push(`Circular tag reference detected: ${e.join(" -> ")} -> ${n}. Breaking cycle.`);break}e.push(n),n=r.get(n)?.parent}a.set(t.name,s?null:t.parent)}const i=new Map;for(const e of t){if(f(e.raw,n.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=i.get(n)??[];t.push(e),i.set(n,t)}}const c=new Map;for(const t of e){const e=a.get(t.name)??null??"__root__",n=c.get(e)??[];n.push(t),c.set(e,n)}const d=e=>s((c.get(e)??[]).map(e=>{const t=(e=>{const t=(i.get(e.name)??[]).map(t=>({id:`op:${e.name}:${t.id}`,name:t.name,order:h(t.raw),metadata:{method:t.method,path:t.path,operationId:t.operationId,deprecated:t.deprecated,summary:t.summary,pointer:t.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${e.name}`,name:e.displayName,order:e.order,children:s(t),metadata:{source:"oas32-parent",kind:"tag"}}})(e),n=d(e.name);return n.length>0&&(t.children=s([...t.children??[],...n])),t})),p=d("__root__"),u=i.get("Other")??[];if(u.length>0){const e=u.map(e=>({id:`op:Other:${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,pointer:e.pointer,source:"fallback",kind:"operation"}}));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:s(e),metadata:{source:"fallback",kind:"tag"}})}return s(p)}function y(e,t={}){const n={...c,...t},o=[],r=d(e);if(!r)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const a=function(e){const t=d(e.paths);if(!t)return[];const n=[];for(const[e,o]of Object.entries(t)){const t=d(o);if(t)for(const o of i){const r=t[o];if(null==r)continue;const a=d(r);if(!a)continue;const s=p(a.operationId),i=p(a.summary),c=m(a.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],f=i??s??`${o.toUpperCase()} ${e}`,h=s??`${o}:${e}`,l=`/paths/${encodeURIComponent(e)}/${o}`;n.push({id:h,path:e,method:o,name:f,summary:i,operationId:s,deprecated:!0===u(a.deprecated),tags:c,pointer:l,raw:a})}}return n}(r),y=function(e){const t=m(e.tags);if(!t)return[];const n=[];for(const e of t){const t=d(e),o=p(t?.name);o&&t&&n.push({name:o,displayName:l(t)??o,description:p(t.description),parent:p(t.parent),order:h(t),raw:t})}return n}(r);let $;if(function(e){return e.some(e=>void 0!==e.parent)}(y))$=g(y,a,n,o);else{const e=function(e){const t=m(e["x-tagGroups"]);if(!t)return[];const n=(e,t)=>{const o=d(e),r=p(o?.name),a=m(o?.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[];if(!r)return null;const s=m(o?.groups)?.map((e,t)=>n(e,t)).filter(e=>null!==e)??[];return{name:r,tags:a,groups:s.length>0?s:void 0,order:h(o??{})??t}};return t.map((e,t)=>n(e,t)).filter(e=>null!==e)}(r);$=e.length>0?function(e,t,n,o){const r=new Map;for(const e of t)r.set(e.name,e.displayName);const a=new Map;for(const e of n)if(!f(e.raw,o.showInternal))for(const t of e.tags){const n=a.get(t)??[];n.push(e),a.set(t,n)}const i=e=>(a.get(e)??[]).map(t=>({id:`op:${e}:${t.id}`,name:t.name,order:h(t.raw),metadata:{method:t.method,path:t.path,operationId:t.operationId,deprecated:t.deprecated,summary:t.summary,pointer:t.pointer,source:"tag-group",kind:"operation"}})),c=e=>({id:`tag:${e}`,name:r.get(e)??e,children:s(i(e)),metadata:{source:"tag-group",kind:"tag"}}),d=e=>{const t=[];for(const n of e.tags){const e=a.get(n);e?.length&&t.push(c(n))}for(const n of e.groups??[])t.push(d(n));return{id:`tag-group:${e.name}`,name:e.name,order:e.order,children:s(t),metadata:{source:"tag-group",kind:"tag-group"}}};return s(e.map(d))}(e,y,a,n):function(e,t,n){const o=new Map,r=new Map;for(let t=0;t<e.length;t+=1){const n=e[t];r.set(n.name,n.order??t)}for(const e of t){if(f(e.raw,n.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=o.get(n)??[];t.push(e),o.set(n,t)}}const a=new Map;for(const t of e)a.set(t.name,t.displayName);const i=[];for(const[e,t]of o){const n=t.map(t=>({id:`op:${e}:${t.id}`,name:t.name,order:h(t.raw),metadata:{method:t.method,path:t.path,operationId:t.operationId,deprecated:t.deprecated,summary:t.summary,pointer:t.pointer,source:"tag",kind:"operation"}}));i.push({id:`tag:${e}`,name:a.get(e)??e,order:"Other"===e?Number.MAX_SAFE_INTEGER:r.get(e),children:s(n),metadata:{source:"tag",kind:"tag"}})}return s(i)}(y,a,n)}const k=function(e,t){if(!t.showWebhooks)return;const n=d(e.webhooks);if(!n)return;const o=[];for(const[e,r]of Object.entries(n)){const n=d(r);if(n)for(const r of i){const a=d(n[r]);if(!a||f(a,t.showInternal))continue;const s=p(a.operationId),i=p(a.summary),c=i??s??`${r.toUpperCase()} ${e}`;o.push({id:`webhook:${e}:${r}`,name:c,order:h(a),metadata:{method:r,path:e,operationId:s,deprecated:!0===u(a.deprecated),summary:i,pointer:`/webhooks/${encodeURIComponent(e)}/${r}`,source:"tag",kind:"webhook"}})}}return 0!==o.length?{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:s(o),metadata:{source:"section",kind:"section",section:"webhooks"}}:void 0}(r,n),w=function(e,t){if(!t.showComponents)return;const n=d(e.components),o=d(n?.schemas);if(!o)return;const r=[];for(const[e,n]of Object.entries(o)){const o=d(n);o&&!f(o,t.showInternal)&&r.push({id:`schema:${e}`,name:e,order:h(o),metadata:{pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==r.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:s(r),metadata:{source:"section",kind:"section",section:"components"}}:void 0}(r,n);return{root:{id:"root",name:"OpenAPI",children:s([{id:"section:apis",name:"APIs",children:$,metadata:{kind:"section",source:"section",section:"apis"},order:0},...k?[k]:[],...w?[w]:[]]),metadata:{kind:"root"}},warnings:o}}var $={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},k={maxDepth:8,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},w=new Set(["string","number","integer","boolean","null"]);function b(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function I(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function A(e){return"boolean"==typeof e?e:void 0}function O(e){return Array.isArray(e)?e:void 0}function j(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function _(e,t,n,o,r,a){const i=function(e){const t=e.type;return"string"==typeof t||Array.isArray(t)&&t.every(e=>"string"==typeof e)?t:void 0}(t),c=I(t.format),d=I(t.description),p=!0===A(t.deprecated),u=function(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"}}(i),m={jsonPath:n,type:i,format:c,required:a,deprecated:p,description:d,kind:u},f=I(t.$ref);if(f){if(r.refStack.has(f))return r.warnings.push(`Circular $ref detected at ${n.join(".")}: ${f}. Breaking recursion.`),{id:n.join(".")||"root",name:e,metadata:{...m,kind:"ref",isLeaf:!0}};r.refStack.add(f)}let h,l=function(e){return!!e&&(Array.isArray(e)?e.every(e=>w.has(e)):w.has(e))}(i);if(o>=r.options.maxDepth)return f&&r.refStack.delete(f),{id:n.join(".")||"root",name:e,metadata:{...m,isLeaf:!0}};const g=b(t.properties);if(g){const e=O(t.required)??[],a=new Set(e.filter(e=>"string"==typeof e)),i=[];for(const[e,t]of Object.entries(g)){const s=b(t);s&&((r.options.showDeprecated||!0!==A(s.deprecated))&&i.push(_(e,s,[...n,"properties",e],o+1,r,a.has(e))))}h=[...h??[],...s(i)],l=!1}if(r.options.showArrayItems&&"array"===i){const e=b(t.items);if(e){h=[...h??[],_("items",e,[...n,"items"],o+1,r,!1)],l=!1}else m.hasItems=!1}if(r.options.expandCombinators){const e=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(const{key:a,kind:i}of e){const e=O(t[a]);if(!e?.length)continue;const c=e.map((e,t)=>{const s=b(e);return s?_(`[${t}]`,s,[...n,a,String(t)],o+1,r,!1):{id:`${n.join(".")}.${a}[${t}]`,name:`[${t}]`,metadata:{jsonPath:[...n,a,String(t)],kind:"unknown",isLeaf:!0}}});h=[...h??[],{id:`${n.join(".")}.${a}`,name:a,children:s(c),metadata:{jsonPath:[...n,a],kind:i}}],l=!1}}const y=O(t.enum);return y?.length&&!h?.length&&(m.kind="enum",l=!0),f&&r.refStack.delete(f),{id:n.join(".")||"root",name:e,order:$[e],metadata:{...m,isLeaf:l},children:h}}function v(e,t={}){const n={...k,...t},o=[],r=b(e);if(!r)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};return{root:_("root",r,[],0,{options:n,warnings:o,refStack:new Set},!0),warnings:o}}function N(e,t){if(0===t.length)return e;const n=t.join("."),o=[e];for(;o.length>0;){const e=o.shift();if(!e)continue;const t=e.metadata?.jsonPath?.join(".");if(t===n)return e;for(const t of e.children??[])o.push(t)}}function C(e){return"enum"===e.kind?"enum":"ref"===e.kind?"$ref":e.format?`${j(e.type)} (${e.format})`:j(e.type)}var E=["get","put","post","delete","options","head","patch","trace"],M={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!0};function S(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function R(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function x(e){return"boolean"==typeof e?e:void 0}function T(e){return Array.isArray(e)?e:void 0}function U(e,t){return!t&&(!0===x(e["x-scalar-ignore"])||!0===x(e["x-internal"]))}function P(e){const t=e["x-order"];return"number"==typeof t&&Number.isFinite(t)?t:void 0}function D(e){return R(e["x-displayName"])}function G(e,t){const n=[],o=T(e.parameters);if(o?.length){const e=function(e,t){const n=[];for(const o of e){const e=S(o);if(!e)continue;const r=R(e.name),a=R(e.in);if(!r||!a)continue;const s=`${a}:${r}`;n.push({id:`${t}/parameters/${encodeURIComponent(s)}`,name:r,metadata:{paramIn:a,required:!0===x(e.required),description:R(e.description),pointer:`${t}/parameters`,kind:"parameter"}})}return s(n)}(o,t);e.length>0&&n.push({id:`${t}/parameters`,name:"Parameters",children:e,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}const r=S(e.requestBody);if(r){const e=S(r.content),o=[];if(e)for(const[n]of Object.entries(e))o.push({id:`${t}/requestBody/content/${encodeURIComponent(n)}`,name:n,metadata:{contentType:n,pointer:`${t}/requestBody/content/${encodeURIComponent(n)}`,kind:"content"}});n.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:R(r.description),required:!0===x(r.required),pointer:`${t}/requestBody`,kind:"request-body"},children:o.length>0?o:void 0})}const a=S(e.responses);if(a){const e=function(e,t){const n=[];for(const[o,r]of Object.entries(e)){const e=S(r);if(!e)continue;const a=R(e.description),s=S(e.content),i=[];if(s)for(const[e]of Object.entries(s))i.push({id:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(e)}`,name:e,metadata:{contentType:e,pointer:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(e)}`,kind:"content"}});n.push({id:`${t}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:a,pointer:`${t}/responses/${encodeURIComponent(o)}`,kind:"response"},children:i.length>0?i:void 0})}return s(n)}(a,t);e.length>0&&n.push({id:`${t}/responses`,name:"Responses",children:e,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return n}function q(e,t,n,o){const r=t.expandOperationDetails?G(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:P(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:n,kind:"operation"},children:r&&r.length>0?r:void 0}}function F(e,t,n,o){const r=new Map;for(const t of e)r.set(t.name,t);const a=new Map;for(const t of e){if(!t.parent){a.set(t.name,null);continue}if(!r.has(t.parent)){o.push(`Tag "${t.name}" references unknown parent "${t.parent}", treating as root.`),a.set(t.name,null);continue}const e=[t.name];let n=t.parent,s=!1;for(;n;){if(e.includes(n)){s=!0,o.push(`Circular tag reference detected: ${e.join(" -> ")} -> ${n}. Breaking cycle.`);break}e.push(n),n=r.get(n)?.parent}a.set(t.name,s?null:t.parent)}const i=new Map;for(const e of t){if(U(e.raw,n.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=i.get(n)??[];t.push(e),i.set(n,t)}}const c=new Map;for(const t of e){const e=a.get(t.name)??null??"__root__",n=c.get(e)??[];n.push(t),c.set(e,n)}const d=e=>s((c.get(e)??[]).map(e=>{const t=(e=>{const t=(i.get(e.name)??[]).map(t=>q(t,n,"oas32-parent",e.name));return{id:`tag:${e.name}`,name:e.displayName,order:e.order,children:s(t),metadata:{description:e.description,source:"oas32-parent",kind:"tag"}}})(e),o=d(e.name);return o.length>0&&(t.children=s([...t.children??[],...o])),t})),p=d("__root__"),u=i.get("Other")??[];if(u.length>0){const e=u.map(e=>q(e,n,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:s(e),metadata:{source:"fallback",kind:"tag"}})}return s(p)}function B(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){const e=S(n);if(!e||"string"!=typeof e.name)continue;const o={name:e.name};Array.isArray(e.tags)&&(o.tags=e.tags.filter(e=>"string"==typeof e)),Array.isArray(e.groups)&&(o.groups=B(e.groups)),t.push(o)}return t}function X(e,t,n,o,r,a=0){const i=[];if(e.tags)for(const a of e.tags){const e=t.get(a);if(!e||0===e.length)continue;const c=e.map(e=>q(e,r,"tag-group",a));i.push({id:`tag:${a}`,name:n.get(a)??a,order:o.get(a),children:s(c),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(const s of e.groups)i.push(X(s,t,n,o,r,a+1));return{id:`tag-group:${e.name}`,name:e.name,order:1e3*a,children:s(i),metadata:{source:"tag-group",kind:"tag-group"}}}function L(e,t,n,o){const r=new Map,a=new Map,i=new Map;for(let e=0;e<t.length;e+=1)a.set(t[e].name,e),i.set(t[e].name,t[e].displayName);for(const e of n){if(U(e.raw,o.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=r.get(n)??[];t.push(e),r.set(n,t)}}const c=B(e["x-tagGroups"]).map(e=>X(e,r,i,a,o)),d=r.get("Other");if(d&&d.length>0){const e=d.map(e=>q(e,o,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:s(e),metadata:{source:"fallback",kind:"tag"}})}return s(c)}function W(e){return e.map(e=>{const t=e.children?W(e.children):void 0,n="operation"===e.metadata?.kind?1:0,o=t?.reduce((e,t)=>e+(t.metadata?.operationCount??0),0)??0;return{...e,children:t,metadata:{...e.metadata,operationCount:n+o}}})}function z(e,t={}){const n={...M,...t},o=[],r=S(e);if(!r)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const a=function(e){const t=S(e.paths);if(!t)return[];const n=[];for(const[e,o]of Object.entries(t)){const t=S(o);if(t)for(const o of E){const r=S(t[o]);if(!r)continue;const a=R(r.operationId),s=R(r.summary),i=R(r.description),c=T(r.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],d=s??a??`${o.toUpperCase()} ${e}`,p=a??`${o}:${e}`,u=`/paths/${encodeURIComponent(e)}/${o}`;n.push({id:p,path:e,method:o,name:d,summary:s,description:i,operationId:a,deprecated:!0===x(r.deprecated),tags:c,pointer:u,raw:r})}}return n}(r),i=function(e){const t=T(e.tags);if(!t)return[];const n=[];for(const e of t){const t=S(e),o=R(t?.name);o&&t&&n.push({name:o,displayName:D(t)??o,description:R(t.description),parent:R(t.parent),order:P(t)})}return n}(r);let c;c=function(e){return e.some(e=>void 0!==e.parent)}(i)?F(i,a,n,o):function(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}(r)?L(r,i,a,n):function(e,t,n){const o=new Map,r=new Map;for(let t=0;t<e.length;t+=1)r.set(e[t].name,t);for(const e of t){if(U(e.raw,n.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=o.get(n)??[];t.push(e),o.set(n,t)}}const a=new Map;for(const t of e)a.set(t.name,t.displayName);const i=[];for(const[e,t]of o){const o=t.map(t=>q(t,n,"tag",e));i.push({id:`tag:${e}`,name:a.get(e)??e,order:"Other"===e?Number.MAX_SAFE_INTEGER:r.get(e),children:s(o),metadata:{source:"tag",kind:"tag"}})}return s(i)}(i,a,n);const d=function(e,t){if(!t.showComponents)return;const n=S(e.components),o=S(n?.schemas);if(!o)return;const r=[];for(const[e,n]of Object.entries(o)){const o=S(n);o&&!U(o,t.showInternal)&&r.push({id:`schema:${e}`,name:e,order:P(o),metadata:{description:R(o.description),pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==r.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:s(r),metadata:{source:"tag",kind:"component"}}:void 0}(r,n);return{root:{id:"root",name:"API Documentation",children:s(W([...c,...d?[d]:[]])),metadata:{kind:"root"}},warnings:o}}
1
+ "use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,a={};function s(e){return[...e].sort((e,t)=>{const n=e.order??Number.MAX_SAFE_INTEGER,o=t.order??Number.MAX_SAFE_INTEGER;if(n!==o)return n-o;return e.name.localeCompare(t.name,"en-US",{numeric:!0,sensitivity:"base"})||e.id.localeCompare(t.id)})}((e,n)=>{for(var o in n)t(e,o,{get:n[o],enumerable:!0})})(a,{buildDocTree:()=>z,buildOpenApiTree:()=>y,buildSchemaTree:()=>v,findSchemaNodeByPath:()=>N,formatSchemaType:()=>C}),module.exports=(e=a,((e,a,s,i)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let c of o(a))r.call(e,c)||c===s||t(e,c,{get:()=>a[c],enumerable:!(i=n(a,c))||i.enumerable});return e})(t({},"__esModule",{value:!0}),e));var i=["get","put","post","delete","options","head","patch","trace"],c={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function d(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function p(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function u(e){return"boolean"==typeof e?e:void 0}function m(e){return Array.isArray(e)?e:void 0}function f(e,t){return!t&&(!0===u(e["x-scalar-ignore"])||!0===u(e["x-internal"]))}function h(e){return"number"==typeof(t=e["x-order"])&&Number.isFinite(t)?t:void 0;var t}function l(e){return p(e["x-displayName"])}function g(e,t,n,o){const r=new Map;for(const t of e)r.set(t.name,t);const a=new Map;for(const t of e){if(!t.parent){a.set(t.name,null);continue}if(!r.has(t.parent)){o.push(`Tag "${t.name}" references unknown parent "${t.parent}", treating as root.`),a.set(t.name,null);continue}const e=[t.name];let n=t.parent,s=!1;for(;n;){if(e.includes(n)){s=!0,o.push(`Circular tag reference detected: ${e.join(" -> ")} -> ${n}. Breaking cycle.`);break}e.push(n),n=r.get(n)?.parent}a.set(t.name,s?null:t.parent)}const i=new Map;for(const e of t){if(f(e.raw,n.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=i.get(n)??[];t.push(e),i.set(n,t)}}const c=new Map;for(const t of e){const e=a.get(t.name)??null??"__root__",n=c.get(e)??[];n.push(t),c.set(e,n)}const d=e=>s((c.get(e)??[]).map(e=>{const t=(e=>{const t=(i.get(e.name)??[]).map(t=>({id:`op:${e.name}:${t.id}`,name:t.name,order:h(t.raw),metadata:{method:t.method,path:t.path,operationId:t.operationId,deprecated:t.deprecated,summary:t.summary,pointer:t.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${e.name}`,name:e.displayName,order:e.order,children:s(t),metadata:{source:"oas32-parent",kind:"tag"}}})(e),n=d(e.name);return n.length>0&&(t.children=s([...t.children??[],...n])),t})),p=d("__root__"),u=i.get("Other")??[];if(u.length>0){const e=u.map(e=>({id:`op:Other:${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,pointer:e.pointer,source:"fallback",kind:"operation"}}));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:s(e),metadata:{source:"fallback",kind:"tag"}})}return s(p)}function y(e,t={}){const n={...c,...t},o=[],r=d(e);if(!r)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const a=function(e){const t=d(e.paths);if(!t)return[];const n=[];for(const[e,o]of Object.entries(t)){const t=d(o);if(t)for(const o of i){const r=t[o];if(null==r)continue;const a=d(r);if(!a)continue;const s=p(a.operationId),i=p(a.summary),c=m(a.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],f=i??s??`${o.toUpperCase()} ${e}`,h=s??`${o}:${e}`,l=`/paths/${encodeURIComponent(e)}/${o}`;n.push({id:h,path:e,method:o,name:f,summary:i,operationId:s,deprecated:!0===u(a.deprecated),tags:c,pointer:l,raw:a})}}return n}(r),y=function(e){const t=m(e.tags);if(!t)return[];const n=[];for(const e of t){const t=d(e),o=p(t?.name);o&&t&&n.push({name:o,displayName:l(t)??o,description:p(t.description),parent:p(t.parent),order:h(t),raw:t})}return n}(r);let $;if(function(e){return e.some(e=>void 0!==e.parent)}(y))$=g(y,a,n,o);else{const e=function(e){const t=m(e["x-tagGroups"]);if(!t)return[];const n=(e,t)=>{const o=d(e),r=p(o?.name),a=m(o?.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[];if(!r)return null;const s=m(o?.groups)?.map((e,t)=>n(e,t)).filter(e=>null!==e)??[];return{name:r,tags:a,groups:s.length>0?s:void 0,order:h(o??{})??t}};return t.map((e,t)=>n(e,t)).filter(e=>null!==e)}(r);$=e.length>0?function(e,t,n,o){const r=new Map;for(const e of t)r.set(e.name,e.displayName);const a=new Map;for(const e of n)if(!f(e.raw,o.showInternal))for(const t of e.tags){const n=a.get(t)??[];n.push(e),a.set(t,n)}const i=e=>(a.get(e)??[]).map(t=>({id:`op:${e}:${t.id}`,name:t.name,order:h(t.raw),metadata:{method:t.method,path:t.path,operationId:t.operationId,deprecated:t.deprecated,summary:t.summary,pointer:t.pointer,source:"tag-group",kind:"operation"}})),c=e=>({id:`tag:${e}`,name:r.get(e)??e,children:s(i(e)),metadata:{source:"tag-group",kind:"tag"}}),d=e=>{const t=[];for(const n of e.tags){const e=a.get(n);e?.length&&t.push(c(n))}for(const n of e.groups??[])t.push(d(n));return{id:`tag-group:${e.name}`,name:e.name,order:e.order,children:s(t),metadata:{source:"tag-group",kind:"tag-group"}}};return s(e.map(d))}(e,y,a,n):function(e,t,n){const o=new Map,r=new Map;for(let t=0;t<e.length;t+=1){const n=e[t];r.set(n.name,n.order??t)}for(const e of t){if(f(e.raw,n.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=o.get(n)??[];t.push(e),o.set(n,t)}}const a=new Map;for(const t of e)a.set(t.name,t.displayName);const i=[];for(const[e,t]of o){const n=t.map(t=>({id:`op:${e}:${t.id}`,name:t.name,order:h(t.raw),metadata:{method:t.method,path:t.path,operationId:t.operationId,deprecated:t.deprecated,summary:t.summary,pointer:t.pointer,source:"tag",kind:"operation"}}));i.push({id:`tag:${e}`,name:a.get(e)??e,order:"Other"===e?Number.MAX_SAFE_INTEGER:r.get(e),children:s(n),metadata:{source:"tag",kind:"tag"}})}return s(i)}(y,a,n)}const k=function(e,t){if(!t.showWebhooks)return;const n=d(e.webhooks);if(!n)return;const o=[];for(const[e,r]of Object.entries(n)){const n=d(r);if(n)for(const r of i){const a=d(n[r]);if(!a||f(a,t.showInternal))continue;const s=p(a.operationId),i=p(a.summary),c=i??s??`${r.toUpperCase()} ${e}`;o.push({id:`webhook:${e}:${r}`,name:c,order:h(a),metadata:{method:r,path:e,operationId:s,deprecated:!0===u(a.deprecated),summary:i,pointer:`/webhooks/${encodeURIComponent(e)}/${r}`,source:"tag",kind:"webhook"}})}}return 0!==o.length?{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:s(o),metadata:{source:"section",kind:"section",section:"webhooks"}}:void 0}(r,n),w=function(e,t){if(!t.showComponents)return;const n=d(e.components),o=d(n?.schemas);if(!o)return;const r=[];for(const[e,n]of Object.entries(o)){const o=d(n);o&&!f(o,t.showInternal)&&r.push({id:`schema:${e}`,name:e,order:h(o),metadata:{pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==r.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:s(r),metadata:{source:"section",kind:"section",section:"components"}}:void 0}(r,n);return{root:{id:"root",name:"OpenAPI",children:s([{id:"section:apis",name:"APIs",children:$,metadata:{kind:"section",source:"section",section:"apis"},order:0},...k?[k]:[],...w?[w]:[]]),metadata:{kind:"root"}},warnings:o}}var $={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},k={maxDepth:8,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},w=new Set(["string","number","integer","boolean","null"]);function b(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function I(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function A(e){return"boolean"==typeof e?e:void 0}function O(e){return Array.isArray(e)?e:void 0}function j(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function _(e,t,n,o,r,a){const i=function(e){const t=e.type;return"string"==typeof t||Array.isArray(t)&&t.every(e=>"string"==typeof e)?t:void 0}(t),c=I(t.format),d=I(t.description),p=!0===A(t.deprecated),u=function(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"}}(i),m={jsonPath:n,type:i,format:c,required:a,deprecated:p,description:d,kind:u},f=I(t.$ref);if(f){if(r.refStack.has(f))return r.warnings.push(`Circular $ref detected at ${n.join(".")}: ${f}. Breaking recursion.`),{id:n.join(".")||"root",name:e,metadata:{...m,kind:"ref",isLeaf:!0}};r.refStack.add(f)}let h,l=function(e){return!!e&&(Array.isArray(e)?e.every(e=>w.has(e)):w.has(e))}(i);if(o>=r.options.maxDepth)return f&&r.refStack.delete(f),{id:n.join(".")||"root",name:e,metadata:{...m,isLeaf:!0}};const g=b(t.properties);if(g){const e=O(t.required)??[],a=new Set(e.filter(e=>"string"==typeof e)),i=[];for(const[e,t]of Object.entries(g)){const s=b(t);s&&((r.options.showDeprecated||!0!==A(s.deprecated))&&i.push(_(e,s,[...n,"properties",e],o+1,r,a.has(e))))}h=[...h??[],...s(i)],l=!1}if(r.options.showArrayItems&&"array"===i){const e=b(t.items);if(e){h=[...h??[],_("items",e,[...n,"items"],o+1,r,!1)],l=!1}else m.hasItems=!1}if(r.options.expandCombinators){const e=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(const{key:a,kind:i}of e){const e=O(t[a]);if(!e?.length)continue;const c=e.map((e,t)=>{const s=b(e);return s?_(`[${t}]`,s,[...n,a,String(t)],o+1,r,!1):{id:`${n.join(".")}.${a}[${t}]`,name:`[${t}]`,metadata:{jsonPath:[...n,a,String(t)],kind:"unknown",isLeaf:!0}}});h=[...h??[],{id:`${n.join(".")}.${a}`,name:a,children:s(c),metadata:{jsonPath:[...n,a],kind:i}}],l=!1}}const y=O(t.enum);return y?.length&&!h?.length&&(m.kind="enum",l=!0),f&&r.refStack.delete(f),{id:n.join(".")||"root",name:e,order:$[e],metadata:{...m,isLeaf:l},children:h}}function v(e,t={}){const n={...k,...t},o=[],r=b(e);if(!r)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};return{root:_("root",r,[],0,{options:n,warnings:o,refStack:new Set},!0),warnings:o}}function N(e,t){if(0===t.length)return e;const n=t.join("."),o=[e];for(;o.length>0;){const e=o.shift();if(!e)continue;const t=e.metadata?.jsonPath?.join(".");if(t===n)return e;for(const t of e.children??[])o.push(t)}}function C(e){return"enum"===e.kind?"enum":"ref"===e.kind?"$ref":e.format?`${j(e.type)} (${e.format})`:j(e.type)}var E=["get","put","post","delete","options","head","patch","trace"],M={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function S(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function R(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function x(e){return"boolean"==typeof e?e:void 0}function T(e){return Array.isArray(e)?e:void 0}function U(e,t){return!t&&(!0===x(e["x-scalar-ignore"])||!0===x(e["x-internal"]))}function P(e){const t=e["x-order"];return"number"==typeof t&&Number.isFinite(t)?t:void 0}function D(e){return R(e["x-displayName"])}function G(e,t){const n=[],o=T(e.parameters);if(o?.length){const e=function(e,t){const n=[];for(const o of e){const e=S(o);if(!e)continue;const r=R(e.name),a=R(e.in);if(!r||!a)continue;const s=`${a}:${r}`;n.push({id:`${t}/parameters/${encodeURIComponent(s)}`,name:r,metadata:{paramIn:a,required:!0===x(e.required),description:R(e.description),pointer:`${t}/parameters`,kind:"parameter"}})}return s(n)}(o,t);e.length>0&&n.push({id:`${t}/parameters`,name:"Parameters",children:e,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}const r=S(e.requestBody);if(r){const e=S(r.content),o=[];if(e)for(const[n]of Object.entries(e))o.push({id:`${t}/requestBody/content/${encodeURIComponent(n)}`,name:n,metadata:{contentType:n,pointer:`${t}/requestBody/content/${encodeURIComponent(n)}`,kind:"content"}});n.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:R(r.description),required:!0===x(r.required),pointer:`${t}/requestBody`,kind:"request-body"},children:o.length>0?o:void 0})}const a=S(e.responses);if(a){const e=function(e,t){const n=[];for(const[o,r]of Object.entries(e)){const e=S(r);if(!e)continue;const a=R(e.description),s=S(e.content),i=[];if(s)for(const[e]of Object.entries(s))i.push({id:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(e)}`,name:e,metadata:{contentType:e,pointer:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(e)}`,kind:"content"}});n.push({id:`${t}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:a,pointer:`${t}/responses/${encodeURIComponent(o)}`,kind:"response"},children:i.length>0?i:void 0})}return s(n)}(a,t);e.length>0&&n.push({id:`${t}/responses`,name:"Responses",children:e,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return n}function q(e,t,n,o){const r=t.expandOperationDetails?G(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:P(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:n,kind:"operation"},children:r&&r.length>0?r:void 0}}function F(e,t,n,o){const r=new Map;for(const t of e)r.set(t.name,t);const a=new Map;for(const t of e){if(!t.parent){a.set(t.name,null);continue}if(!r.has(t.parent)){o.push(`Tag "${t.name}" references unknown parent "${t.parent}", treating as root.`),a.set(t.name,null);continue}const e=[t.name];let n=t.parent,s=!1;for(;n;){if(e.includes(n)){s=!0,o.push(`Circular tag reference detected: ${e.join(" -> ")} -> ${n}. Breaking cycle.`);break}e.push(n),n=r.get(n)?.parent}a.set(t.name,s?null:t.parent)}const i=new Map;for(const e of t){if(U(e.raw,n.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=i.get(n)??[];t.push(e),i.set(n,t)}}const c=new Map;for(const t of e){const e=a.get(t.name)??null??"__root__",n=c.get(e)??[];n.push(t),c.set(e,n)}const d=e=>s((c.get(e)??[]).map(e=>{const t=(e=>{const t=(i.get(e.name)??[]).map(t=>q(t,n,"oas32-parent",e.name));return{id:`tag:${e.name}`,name:e.displayName,order:e.order,children:s(t),metadata:{description:e.description,source:"oas32-parent",kind:"tag"}}})(e),o=d(e.name);return o.length>0&&(t.children=s([...t.children??[],...o])),t})),p=d("__root__"),u=i.get("Other")??[];if(u.length>0){const e=u.map(e=>q(e,n,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:s(e),metadata:{source:"fallback",kind:"tag"}})}return s(p)}function B(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){const e=S(n);if(!e||"string"!=typeof e.name)continue;const o={name:e.name};Array.isArray(e.tags)&&(o.tags=e.tags.filter(e=>"string"==typeof e)),Array.isArray(e.groups)&&(o.groups=B(e.groups)),t.push(o)}return t}function X(e,t,n,o,r,a=0){const i=[];if(e.tags)for(const a of e.tags){const e=t.get(a);if(!e||0===e.length)continue;const c=e.map(e=>q(e,r,"tag-group",a));i.push({id:`tag:${a}`,name:n.get(a)??a,order:o.get(a),children:s(c),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(const s of e.groups)i.push(X(s,t,n,o,r,a+1));return{id:`tag-group:${e.name}`,name:e.name,order:1e3*a,children:s(i),metadata:{source:"tag-group",kind:"tag-group"}}}function L(e,t,n,o){const r=new Map,a=new Map,i=new Map;for(let e=0;e<t.length;e+=1)a.set(t[e].name,e),i.set(t[e].name,t[e].displayName);for(const e of n){if(U(e.raw,o.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=r.get(n)??[];t.push(e),r.set(n,t)}}const c=B(e["x-tagGroups"]).map(e=>X(e,r,i,a,o)),d=r.get("Other");if(d&&d.length>0){const e=d.map(e=>q(e,o,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:s(e),metadata:{source:"fallback",kind:"tag"}})}return s(c)}function W(e){return e.map(e=>{const t=e.children?W(e.children):void 0,n="operation"===e.metadata?.kind?1:0,o=t?.reduce((e,t)=>e+(t.metadata?.operationCount??0),0)??0;return{...e,children:t,metadata:{...e.metadata,operationCount:n+o}}})}function z(e,t={}){const n={...M,...t},o=[],r=S(e);if(!r)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const a=function(e){const t=S(e.paths);if(!t)return[];const n=[];for(const[e,o]of Object.entries(t)){const t=S(o);if(t)for(const o of E){const r=S(t[o]);if(!r)continue;const a=R(r.operationId),s=R(r.summary),i=R(r.description),c=T(r.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],d=s??a??`${o.toUpperCase()} ${e}`,p=a??`${o}:${e}`,u=`/paths/${encodeURIComponent(e)}/${o}`;n.push({id:p,path:e,method:o,name:d,summary:s,description:i,operationId:a,deprecated:!0===x(r.deprecated),tags:c,pointer:u,raw:r})}}return n}(r),i=function(e){const t=T(e.tags);if(!t)return[];const n=[];for(const e of t){const t=S(e),o=R(t?.name);o&&t&&n.push({name:o,displayName:D(t)??o,description:R(t.description),parent:R(t.parent),order:P(t)})}return n}(r);let c;c=function(e){return e.some(e=>void 0!==e.parent)}(i)?F(i,a,n,o):function(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}(r)?L(r,i,a,n):function(e,t,n){const o=new Map,r=new Map;for(let t=0;t<e.length;t+=1)r.set(e[t].name,t);for(const e of t){if(U(e.raw,n.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=o.get(n)??[];t.push(e),o.set(n,t)}}const a=new Map;for(const t of e)a.set(t.name,t.displayName);const i=[];for(const[e,t]of o){const o=t.map(t=>q(t,n,"tag",e));i.push({id:`tag:${e}`,name:a.get(e)??e,order:"Other"===e?Number.MAX_SAFE_INTEGER:r.get(e),children:s(o),metadata:{source:"tag",kind:"tag"}})}return s(i)}(i,a,n);const d=function(e,t){if(!t.showComponents)return;const n=S(e.components),o=S(n?.schemas);if(!o)return;const r=[];for(const[e,n]of Object.entries(o)){const o=S(n);o&&!U(o,t.showInternal)&&r.push({id:`schema:${e}`,name:e,order:P(o),metadata:{description:R(o.description),pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==r.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:s(r),metadata:{source:"tag",kind:"component"}}:void 0}(r,n);return{root:{id:"root",name:"API Documentation",children:s(W([...c,...d?[d]:[]])),metadata:{kind:"root"}},warnings:o}}
@@ -149,7 +149,7 @@ interface DocTreeOptions {
149
149
  showComponents?: boolean;
150
150
  /** Include webhooks section. Default true. */
151
151
  showWebhooks?: boolean;
152
- /** Expand operation details (parameters, request body, responses). Default true. */
152
+ /** Expand operation details (parameters, request body, responses). Default false. */
153
153
  expandOperationDetails?: boolean;
154
154
  }
155
155
  interface DocTreeBuildResult {
@@ -149,7 +149,7 @@ interface DocTreeOptions {
149
149
  showComponents?: boolean;
150
150
  /** Include webhooks section. Default true. */
151
151
  showWebhooks?: boolean;
152
- /** Expand operation details (parameters, request body, responses). Default true. */
152
+ /** Expand operation details (parameters, request body, responses). Default false. */
153
153
  expandOperationDetails?: boolean;
154
154
  }
155
155
  interface DocTreeBuildResult {
@@ -1 +1 @@
1
- import{buildDocTree as o,buildOpenApiTree as r,buildSchemaTree as m,findSchemaNodeByPath as p,formatSchemaType as t}from"../chunk-YSSQNJPQ.js";import"../chunk-5KF7QUTD.js";export{o as buildDocTree,r as buildOpenApiTree,m as buildSchemaTree,p as findSchemaNodeByPath,t as formatSchemaType};
1
+ import{buildDocTree as o,buildOpenApiTree as r,buildSchemaTree as m,findSchemaNodeByPath as p,formatSchemaType as t}from"../chunk-WY6V7DT2.js";import"../chunk-5KF7QUTD.js";export{o as buildDocTree,r as buildOpenApiTree,m as buildSchemaTree,p as findSchemaNodeByPath,t as formatSchemaType};
@@ -1 +1 @@
1
- import{sortNodes as e}from"./chunk-5KF7QUTD.js";var t=["get","put","post","delete","options","head","patch","trace"],n={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function o(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function r(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function a(e){return"boolean"==typeof e?e:void 0}function s(e){return Array.isArray(e)?e:void 0}function i(e,t){return!t&&(!0===a(e["x-scalar-ignore"])||!0===a(e["x-internal"]))}function c(e){return"number"==typeof(t=e["x-order"])&&Number.isFinite(t)?t:void 0;var t}function d(e){return r(e["x-displayName"])}function p(t,n,o,r){const a=new Map;for(const e of t)a.set(e.name,e);const s=new Map;for(const e of t){if(!e.parent){s.set(e.name,null);continue}if(!a.has(e.parent)){r.push(`Tag "${e.name}" references unknown parent "${e.parent}", treating as root.`),s.set(e.name,null);continue}const t=[e.name];let n=e.parent,o=!1;for(;n;){if(t.includes(n)){o=!0,r.push(`Circular tag reference detected: ${t.join(" -> ")} -> ${n}. Breaking cycle.`);break}t.push(n),n=a.get(n)?.parent}s.set(e.name,o?null:e.parent)}const d=new Map;for(const e of n){if(i(e.raw,o.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=d.get(n)??[];t.push(e),d.set(n,t)}}const p=new Map;for(const e of t){const t=s.get(e.name)??null??"__root__",n=p.get(t)??[];n.push(e),p.set(t,n)}const u=t=>{const n=p.get(t)??[];return e(n.map(t=>{const n=(t=>{const n=(d.get(t.name)??[]).map(e=>({id:`op:${t.name}:${e.id}`,name:e.name,order:c(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${t.name}`,name:t.displayName,order:t.order,children:e(n),metadata:{source:"oas32-parent",kind:"tag"}}})(t),o=u(t.name);return o.length>0&&(n.children=e([...n.children??[],...o])),n}))},m=u("__root__"),f=d.get("Other")??[];if(f.length>0){const t=f.map(e=>({id:`op:Other:${e.id}`,name:e.name,order:c(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"}}));m.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:e(t),metadata:{source:"fallback",kind:"tag"}})}return e(m)}function u(u,m={}){const f={...n,...m},h=[],l=o(u);if(!l)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const g=function(e){const n=o(e.paths);if(!n)return[];const i=[];for(const[e,c]of Object.entries(n)){const n=o(c);if(n)for(const c of t){const t=n[c];if(null==t)continue;const d=o(t);if(!d)continue;const p=r(d.operationId),u=r(d.summary),m=s(d.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],f=u??p??`${c.toUpperCase()} ${e}`,h=p??`${c}:${e}`,l=`/paths/${encodeURIComponent(e)}/${c}`;i.push({id:h,path:e,method:c,name:f,summary:u,operationId:p,deprecated:!0===a(d.deprecated),tags:m,pointer:l,raw:d})}}return i}(l),y=function(e){const t=s(e.tags);if(!t)return[];const n=[];for(const e of t){const t=o(e),a=r(t?.name);a&&t&&n.push({name:a,displayName:d(t)??a,description:r(t.description),parent:r(t.parent),order:c(t),raw:t})}return n}(l);let $;if(function(e){return e.some(e=>void 0!==e.parent)}(y))$=p(y,g,f,h);else{const t=function(e){const t=s(e["x-tagGroups"]);if(!t)return[];const n=(e,t)=>{const a=o(e),i=r(a?.name),d=s(a?.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[];if(!i)return null;const p=s(a?.groups)?.map((e,t)=>n(e,t)).filter(e=>null!==e)??[];return{name:i,tags:d,groups:p.length>0?p:void 0,order:c(a??{})??t}};return t.map((e,t)=>n(e,t)).filter(e=>null!==e)}(l);$=t.length>0?function(t,n,o,r){const a=new Map;for(const e of n)a.set(e.name,e.displayName);const s=new Map;for(const e of o)if(!i(e.raw,r.showInternal))for(const t of e.tags){const n=s.get(t)??[];n.push(e),s.set(t,n)}const d=e=>(s.get(e)??[]).map(t=>({id:`op:${e}:${t.id}`,name:t.name,order:c(t.raw),metadata:{method:t.method,path:t.path,operationId:t.operationId,deprecated:t.deprecated,summary:t.summary,pointer:t.pointer,source:"tag-group",kind:"operation"}})),p=t=>({id:`tag:${t}`,name:a.get(t)??t,children:e(d(t)),metadata:{source:"tag-group",kind:"tag"}}),u=t=>{const n=[];for(const e of t.tags){const t=s.get(e);t?.length&&n.push(p(e))}for(const e of t.groups??[])n.push(u(e));return{id:`tag-group:${t.name}`,name:t.name,order:t.order,children:e(n),metadata:{source:"tag-group",kind:"tag-group"}}};return e(t.map(u))}(t,y,g,f):function(t,n,o){const r=new Map,a=new Map;for(let e=0;e<t.length;e+=1){const n=t[e];a.set(n.name,n.order??e)}for(const e of n){if(i(e.raw,o.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=r.get(n)??[];t.push(e),r.set(n,t)}}const s=new Map;for(const e of t)s.set(e.name,e.displayName);const d=[];for(const[t,n]of r){const o=n.map(e=>({id:`op:${t}:${e.id}`,name:e.name,order:c(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"tag",kind:"operation"}}));d.push({id:`tag:${t}`,name:s.get(t)??t,order:"Other"===t?Number.MAX_SAFE_INTEGER:a.get(t),children:e(o),metadata:{source:"tag",kind:"tag"}})}return e(d)}(y,g,f)}const k=function(n,s){if(!s.showWebhooks)return;const d=o(n.webhooks);if(!d)return;const p=[];for(const[e,n]of Object.entries(d)){const d=o(n);if(d)for(const n of t){const t=o(d[n]);if(!t||i(t,s.showInternal))continue;const u=r(t.operationId),m=r(t.summary),f=m??u??`${n.toUpperCase()} ${e}`;p.push({id:`webhook:${e}:${n}`,name:f,order:c(t),metadata:{method:n,path:e,operationId:u,deprecated:!0===a(t.deprecated),summary:m,pointer:`/webhooks/${encodeURIComponent(e)}/${n}`,source:"tag",kind:"webhook"}})}}return 0!==p.length?{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:e(p),metadata:{source:"section",kind:"section",section:"webhooks"}}:void 0}(l,f),w=function(t,n){if(!n.showComponents)return;const r=o(t.components),a=o(r?.schemas);if(!a)return;const s=[];for(const[e,t]of Object.entries(a)){const r=o(t);r&&!i(r,n.showInternal)&&s.push({id:`schema:${e}`,name:e,order:c(r),metadata:{pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==s.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:e(s),metadata:{source:"section",kind:"section",section:"components"}}:void 0}(l,f),b=[{id:"section:apis",name:"APIs",children:$,metadata:{kind:"section",source:"section",section:"apis"},order:0},...k?[k]:[],...w?[w]:[]];return{root:{id:"root",name:"OpenAPI",children:e(b),metadata:{kind:"root"}},warnings:h}}var m={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},f={maxDepth:8,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},h=new Set(["string","number","integer","boolean","null"]);function l(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function g(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function y(e){return"boolean"==typeof e?e:void 0}function $(e){return Array.isArray(e)?e:void 0}function k(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function w(t,n,o,r,a,s){const i=function(e){const t=e.type;return"string"==typeof t||Array.isArray(t)&&t.every(e=>"string"==typeof e)?t:void 0}(n),c=g(n.format),d=g(n.description),p=!0===y(n.deprecated),u=function(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"}}(i),f={jsonPath:o,type:i,format:c,required:s,deprecated:p,description:d,kind:u},k=g(n.$ref);if(k){if(a.refStack.has(k))return a.warnings.push(`Circular $ref detected at ${o.join(".")}: ${k}. Breaking recursion.`),{id:o.join(".")||"root",name:t,metadata:{...f,kind:"ref",isLeaf:!0}};a.refStack.add(k)}let b,I=function(e){return!!e&&(Array.isArray(e)?e.every(e=>h.has(e)):h.has(e))}(i);if(r>=a.options.maxDepth)return k&&a.refStack.delete(k),{id:o.join(".")||"root",name:t,metadata:{...f,isLeaf:!0}};const A=l(n.properties);if(A){const t=$(n.required)??[],s=new Set(t.filter(e=>"string"==typeof e)),i=[];for(const[e,t]of Object.entries(A)){const n=l(t);n&&((a.options.showDeprecated||!0!==y(n.deprecated))&&i.push(w(e,n,[...o,"properties",e],r+1,a,s.has(e))))}b=[...b??[],...e(i)],I=!1}if(a.options.showArrayItems&&"array"===i){const e=l(n.items);if(e){b=[...b??[],w("items",e,[...o,"items"],r+1,a,!1)],I=!1}else f.hasItems=!1}if(a.options.expandCombinators){const t=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(const{key:s,kind:i}of t){const t=$(n[s]);if(!t?.length)continue;const c=t.map((e,t)=>{const n=l(e);return n?w(`[${t}]`,n,[...o,s,String(t)],r+1,a,!1):{id:`${o.join(".")}.${s}[${t}]`,name:`[${t}]`,metadata:{jsonPath:[...o,s,String(t)],kind:"unknown",isLeaf:!0}}});b=[...b??[],{id:`${o.join(".")}.${s}`,name:s,children:e(c),metadata:{jsonPath:[...o,s],kind:i}}],I=!1}}const O=$(n.enum);return O?.length&&!b?.length&&(f.kind="enum",I=!0),k&&a.refStack.delete(k),{id:o.join(".")||"root",name:t,order:m[t],metadata:{...f,isLeaf:I},children:b}}function b(e,t={}){const n={...f,...t},o=[],r=l(e);if(!r)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};return{root:w("root",r,[],0,{options:n,warnings:o,refStack:new Set},!0),warnings:o}}function I(e,t){if(0===t.length)return e;const n=t.join("."),o=[e];for(;o.length>0;){const e=o.shift();if(!e)continue;const t=e.metadata?.jsonPath?.join(".");if(t===n)return e;for(const t of e.children??[])o.push(t)}}function A(e){return"enum"===e.kind?"enum":"ref"===e.kind?"$ref":e.format?`${k(e.type)} (${e.format})`:k(e.type)}var O=["get","put","post","delete","options","head","patch","trace"],j={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!0};function _(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function C(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function v(e){return"boolean"==typeof e?e:void 0}function N(e){return Array.isArray(e)?e:void 0}function M(e,t){return!t&&(!0===v(e["x-scalar-ignore"])||!0===v(e["x-internal"]))}function E(e){const t=e["x-order"];return"number"==typeof t&&Number.isFinite(t)?t:void 0}function R(e){return C(e["x-displayName"])}function x(t,n){const o=[],r=N(t.parameters);if(r?.length){const t=function(t,n){const o=[];for(const e of t){const t=_(e);if(!t)continue;const r=C(t.name),a=C(t.in);if(!r||!a)continue;const s=`${a}:${r}`;o.push({id:`${n}/parameters/${encodeURIComponent(s)}`,name:r,metadata:{paramIn:a,required:!0===v(t.required),description:C(t.description),pointer:`${n}/parameters`,kind:"parameter"}})}return e(o)}(r,n);t.length>0&&o.push({id:`${n}/parameters`,name:"Parameters",children:t,metadata:{pointer:`${n}/parameters`,kind:"parameters"}})}const a=_(t.requestBody);if(a){const e=_(a.content),t=[];if(e)for(const[o]of Object.entries(e))t.push({id:`${n}/requestBody/content/${encodeURIComponent(o)}`,name:o,metadata:{contentType:o,pointer:`${n}/requestBody/content/${encodeURIComponent(o)}`,kind:"content"}});o.push({id:`${n}/requestBody`,name:"Request Body",metadata:{description:C(a.description),required:!0===v(a.required),pointer:`${n}/requestBody`,kind:"request-body"},children:t.length>0?t:void 0})}const s=_(t.responses);if(s){const t=function(t,n){const o=[];for(const[e,r]of Object.entries(t)){const t=_(r);if(!t)continue;const a=C(t.description),s=_(t.content),i=[];if(s)for(const[t]of Object.entries(s))i.push({id:`${n}/responses/${encodeURIComponent(e)}/content/${encodeURIComponent(t)}`,name:t,metadata:{contentType:t,pointer:`${n}/responses/${encodeURIComponent(e)}/content/${encodeURIComponent(t)}`,kind:"content"}});o.push({id:`${n}/responses/${encodeURIComponent(e)}`,name:e,metadata:{statusCode:e,description:a,pointer:`${n}/responses/${encodeURIComponent(e)}`,kind:"response"},children:i.length>0?i:void 0})}return e(o)}(s,n);t.length>0&&o.push({id:`${n}/responses`,name:"Responses",children:t,metadata:{pointer:`${n}/responses`,kind:"responses"}})}return o}function S(e,t,n,o){const r=t.expandOperationDetails?x(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:E(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:n,kind:"operation"},children:r&&r.length>0?r:void 0}}function U(t,n,o,r){const a=new Map;for(const e of t)a.set(e.name,e);const s=new Map;for(const e of t){if(!e.parent){s.set(e.name,null);continue}if(!a.has(e.parent)){r.push(`Tag "${e.name}" references unknown parent "${e.parent}", treating as root.`),s.set(e.name,null);continue}const t=[e.name];let n=e.parent,o=!1;for(;n;){if(t.includes(n)){o=!0,r.push(`Circular tag reference detected: ${t.join(" -> ")} -> ${n}. Breaking cycle.`);break}t.push(n),n=a.get(n)?.parent}s.set(e.name,o?null:e.parent)}const i=new Map;for(const e of n){if(M(e.raw,o.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=i.get(n)??[];t.push(e),i.set(n,t)}}const c=new Map;for(const e of t){const t=s.get(e.name)??null??"__root__",n=c.get(t)??[];n.push(e),c.set(t,n)}const d=t=>{const n=c.get(t)??[];return e(n.map(t=>{const n=(t=>{const n=(i.get(t.name)??[]).map(e=>S(e,o,"oas32-parent",t.name));return{id:`tag:${t.name}`,name:t.displayName,order:t.order,children:e(n),metadata:{description:t.description,source:"oas32-parent",kind:"tag"}}})(t),r=d(t.name);return r.length>0&&(n.children=e([...n.children??[],...r])),n}))},p=d("__root__"),u=i.get("Other")??[];if(u.length>0){const t=u.map(e=>S(e,o,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:e(t),metadata:{source:"fallback",kind:"tag"}})}return e(p)}function D(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){const e=_(n);if(!e||"string"!=typeof e.name)continue;const o={name:e.name};Array.isArray(e.tags)&&(o.tags=e.tags.filter(e=>"string"==typeof e)),Array.isArray(e.groups)&&(o.groups=D(e.groups)),t.push(o)}return t}function q(t,n,o,r,a,s=0){const i=[];if(t.tags)for(const s of t.tags){const t=n.get(s);if(!t||0===t.length)continue;const c=t.map(e=>S(e,a,"tag-group",s));i.push({id:`tag:${s}`,name:o.get(s)??s,order:r.get(s),children:e(c),metadata:{source:"tag-group",kind:"tag"}})}if(t.groups)for(const e of t.groups)i.push(q(e,n,o,r,a,s+1));return{id:`tag-group:${t.name}`,name:t.name,order:1e3*s,children:e(i),metadata:{source:"tag-group",kind:"tag-group"}}}function T(t,n,o,r){const a=new Map,s=new Map,i=new Map;for(let e=0;e<n.length;e+=1)s.set(n[e].name,e),i.set(n[e].name,n[e].displayName);for(const e of o){if(M(e.raw,r.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=a.get(n)??[];t.push(e),a.set(n,t)}}const c=D(t["x-tagGroups"]).map(e=>q(e,a,i,s,r)),d=a.get("Other");if(d&&d.length>0){const t=d.map(e=>S(e,r,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:e(t),metadata:{source:"fallback",kind:"tag"}})}return e(c)}function G(e){return e.map(e=>{const t=e.children?G(e.children):void 0,n="operation"===e.metadata?.kind?1:0,o=t?.reduce((e,t)=>e+(t.metadata?.operationCount??0),0)??0;return{...e,children:t,metadata:{...e.metadata,operationCount:n+o}}})}function F(t,n={}){const o={...j,...n},r=[],a=_(t);if(!a)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const s=function(e){const t=_(e.paths);if(!t)return[];const n=[];for(const[e,o]of Object.entries(t)){const t=_(o);if(t)for(const o of O){const r=_(t[o]);if(!r)continue;const a=C(r.operationId),s=C(r.summary),i=C(r.description),c=N(r.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],d=s??a??`${o.toUpperCase()} ${e}`,p=a??`${o}:${e}`,u=`/paths/${encodeURIComponent(e)}/${o}`;n.push({id:p,path:e,method:o,name:d,summary:s,description:i,operationId:a,deprecated:!0===v(r.deprecated),tags:c,pointer:u,raw:r})}}return n}(a),i=function(e){const t=N(e.tags);if(!t)return[];const n=[];for(const e of t){const t=_(e),o=C(t?.name);o&&t&&n.push({name:o,displayName:R(t)??o,description:C(t.description),parent:C(t.parent),order:E(t)})}return n}(a);let c;c=function(e){return e.some(e=>void 0!==e.parent)}(i)?U(i,s,o,r):function(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}(a)?T(a,i,s,o):function(t,n,o){const r=new Map,a=new Map;for(let e=0;e<t.length;e+=1)a.set(t[e].name,e);for(const e of n){if(M(e.raw,o.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=r.get(n)??[];t.push(e),r.set(n,t)}}const s=new Map;for(const e of t)s.set(e.name,e.displayName);const i=[];for(const[t,n]of r){const r=n.map(e=>S(e,o,"tag",t));i.push({id:`tag:${t}`,name:s.get(t)??t,order:"Other"===t?Number.MAX_SAFE_INTEGER:a.get(t),children:e(r),metadata:{source:"tag",kind:"tag"}})}return e(i)}(i,s,o);const d=function(t,n){if(!n.showComponents)return;const o=_(t.components),r=_(o?.schemas);if(!r)return;const a=[];for(const[e,t]of Object.entries(r)){const o=_(t);o&&!M(o,n.showInternal)&&a.push({id:`schema:${e}`,name:e,order:E(o),metadata:{description:C(o.description),pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==a.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:e(a),metadata:{source:"tag",kind:"component"}}:void 0}(a,o),p=G([...c,...d?[d]:[]]);return{root:{id:"root",name:"API Documentation",children:e(p),metadata:{kind:"root"}},warnings:r}}export{u as buildOpenApiTree,b as buildSchemaTree,I as findSchemaNodeByPath,A as formatSchemaType,F as buildDocTree};
1
+ import{sortNodes as e}from"./chunk-5KF7QUTD.js";var t=["get","put","post","delete","options","head","patch","trace"],n={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function o(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function r(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function a(e){return"boolean"==typeof e?e:void 0}function s(e){return Array.isArray(e)?e:void 0}function i(e,t){return!t&&(!0===a(e["x-scalar-ignore"])||!0===a(e["x-internal"]))}function c(e){return"number"==typeof(t=e["x-order"])&&Number.isFinite(t)?t:void 0;var t}function d(e){return r(e["x-displayName"])}function p(t,n,o,r){const a=new Map;for(const e of t)a.set(e.name,e);const s=new Map;for(const e of t){if(!e.parent){s.set(e.name,null);continue}if(!a.has(e.parent)){r.push(`Tag "${e.name}" references unknown parent "${e.parent}", treating as root.`),s.set(e.name,null);continue}const t=[e.name];let n=e.parent,o=!1;for(;n;){if(t.includes(n)){o=!0,r.push(`Circular tag reference detected: ${t.join(" -> ")} -> ${n}. Breaking cycle.`);break}t.push(n),n=a.get(n)?.parent}s.set(e.name,o?null:e.parent)}const d=new Map;for(const e of n){if(i(e.raw,o.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=d.get(n)??[];t.push(e),d.set(n,t)}}const p=new Map;for(const e of t){const t=s.get(e.name)??null??"__root__",n=p.get(t)??[];n.push(e),p.set(t,n)}const u=t=>{const n=p.get(t)??[];return e(n.map(t=>{const n=(t=>{const n=(d.get(t.name)??[]).map(e=>({id:`op:${t.name}:${e.id}`,name:e.name,order:c(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${t.name}`,name:t.displayName,order:t.order,children:e(n),metadata:{source:"oas32-parent",kind:"tag"}}})(t),o=u(t.name);return o.length>0&&(n.children=e([...n.children??[],...o])),n}))},m=u("__root__"),f=d.get("Other")??[];if(f.length>0){const t=f.map(e=>({id:`op:Other:${e.id}`,name:e.name,order:c(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"}}));m.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:e(t),metadata:{source:"fallback",kind:"tag"}})}return e(m)}function u(u,m={}){const f={...n,...m},h=[],l=o(u);if(!l)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const g=function(e){const n=o(e.paths);if(!n)return[];const i=[];for(const[e,c]of Object.entries(n)){const n=o(c);if(n)for(const c of t){const t=n[c];if(null==t)continue;const d=o(t);if(!d)continue;const p=r(d.operationId),u=r(d.summary),m=s(d.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],f=u??p??`${c.toUpperCase()} ${e}`,h=p??`${c}:${e}`,l=`/paths/${encodeURIComponent(e)}/${c}`;i.push({id:h,path:e,method:c,name:f,summary:u,operationId:p,deprecated:!0===a(d.deprecated),tags:m,pointer:l,raw:d})}}return i}(l),y=function(e){const t=s(e.tags);if(!t)return[];const n=[];for(const e of t){const t=o(e),a=r(t?.name);a&&t&&n.push({name:a,displayName:d(t)??a,description:r(t.description),parent:r(t.parent),order:c(t),raw:t})}return n}(l);let $;if(function(e){return e.some(e=>void 0!==e.parent)}(y))$=p(y,g,f,h);else{const t=function(e){const t=s(e["x-tagGroups"]);if(!t)return[];const n=(e,t)=>{const a=o(e),i=r(a?.name),d=s(a?.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[];if(!i)return null;const p=s(a?.groups)?.map((e,t)=>n(e,t)).filter(e=>null!==e)??[];return{name:i,tags:d,groups:p.length>0?p:void 0,order:c(a??{})??t}};return t.map((e,t)=>n(e,t)).filter(e=>null!==e)}(l);$=t.length>0?function(t,n,o,r){const a=new Map;for(const e of n)a.set(e.name,e.displayName);const s=new Map;for(const e of o)if(!i(e.raw,r.showInternal))for(const t of e.tags){const n=s.get(t)??[];n.push(e),s.set(t,n)}const d=e=>(s.get(e)??[]).map(t=>({id:`op:${e}:${t.id}`,name:t.name,order:c(t.raw),metadata:{method:t.method,path:t.path,operationId:t.operationId,deprecated:t.deprecated,summary:t.summary,pointer:t.pointer,source:"tag-group",kind:"operation"}})),p=t=>({id:`tag:${t}`,name:a.get(t)??t,children:e(d(t)),metadata:{source:"tag-group",kind:"tag"}}),u=t=>{const n=[];for(const e of t.tags){const t=s.get(e);t?.length&&n.push(p(e))}for(const e of t.groups??[])n.push(u(e));return{id:`tag-group:${t.name}`,name:t.name,order:t.order,children:e(n),metadata:{source:"tag-group",kind:"tag-group"}}};return e(t.map(u))}(t,y,g,f):function(t,n,o){const r=new Map,a=new Map;for(let e=0;e<t.length;e+=1){const n=t[e];a.set(n.name,n.order??e)}for(const e of n){if(i(e.raw,o.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=r.get(n)??[];t.push(e),r.set(n,t)}}const s=new Map;for(const e of t)s.set(e.name,e.displayName);const d=[];for(const[t,n]of r){const o=n.map(e=>({id:`op:${t}:${e.id}`,name:e.name,order:c(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"tag",kind:"operation"}}));d.push({id:`tag:${t}`,name:s.get(t)??t,order:"Other"===t?Number.MAX_SAFE_INTEGER:a.get(t),children:e(o),metadata:{source:"tag",kind:"tag"}})}return e(d)}(y,g,f)}const k=function(n,s){if(!s.showWebhooks)return;const d=o(n.webhooks);if(!d)return;const p=[];for(const[e,n]of Object.entries(d)){const d=o(n);if(d)for(const n of t){const t=o(d[n]);if(!t||i(t,s.showInternal))continue;const u=r(t.operationId),m=r(t.summary),f=m??u??`${n.toUpperCase()} ${e}`;p.push({id:`webhook:${e}:${n}`,name:f,order:c(t),metadata:{method:n,path:e,operationId:u,deprecated:!0===a(t.deprecated),summary:m,pointer:`/webhooks/${encodeURIComponent(e)}/${n}`,source:"tag",kind:"webhook"}})}}return 0!==p.length?{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:e(p),metadata:{source:"section",kind:"section",section:"webhooks"}}:void 0}(l,f),w=function(t,n){if(!n.showComponents)return;const r=o(t.components),a=o(r?.schemas);if(!a)return;const s=[];for(const[e,t]of Object.entries(a)){const r=o(t);r&&!i(r,n.showInternal)&&s.push({id:`schema:${e}`,name:e,order:c(r),metadata:{pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==s.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:e(s),metadata:{source:"section",kind:"section",section:"components"}}:void 0}(l,f),b=[{id:"section:apis",name:"APIs",children:$,metadata:{kind:"section",source:"section",section:"apis"},order:0},...k?[k]:[],...w?[w]:[]];return{root:{id:"root",name:"OpenAPI",children:e(b),metadata:{kind:"root"}},warnings:h}}var m={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},f={maxDepth:8,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},h=new Set(["string","number","integer","boolean","null"]);function l(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function g(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function y(e){return"boolean"==typeof e?e:void 0}function $(e){return Array.isArray(e)?e:void 0}function k(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function w(t,n,o,r,a,s){const i=function(e){const t=e.type;return"string"==typeof t||Array.isArray(t)&&t.every(e=>"string"==typeof e)?t:void 0}(n),c=g(n.format),d=g(n.description),p=!0===y(n.deprecated),u=function(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"}}(i),f={jsonPath:o,type:i,format:c,required:s,deprecated:p,description:d,kind:u},k=g(n.$ref);if(k){if(a.refStack.has(k))return a.warnings.push(`Circular $ref detected at ${o.join(".")}: ${k}. Breaking recursion.`),{id:o.join(".")||"root",name:t,metadata:{...f,kind:"ref",isLeaf:!0}};a.refStack.add(k)}let b,I=function(e){return!!e&&(Array.isArray(e)?e.every(e=>h.has(e)):h.has(e))}(i);if(r>=a.options.maxDepth)return k&&a.refStack.delete(k),{id:o.join(".")||"root",name:t,metadata:{...f,isLeaf:!0}};const A=l(n.properties);if(A){const t=$(n.required)??[],s=new Set(t.filter(e=>"string"==typeof e)),i=[];for(const[e,t]of Object.entries(A)){const n=l(t);n&&((a.options.showDeprecated||!0!==y(n.deprecated))&&i.push(w(e,n,[...o,"properties",e],r+1,a,s.has(e))))}b=[...b??[],...e(i)],I=!1}if(a.options.showArrayItems&&"array"===i){const e=l(n.items);if(e){b=[...b??[],w("items",e,[...o,"items"],r+1,a,!1)],I=!1}else f.hasItems=!1}if(a.options.expandCombinators){const t=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(const{key:s,kind:i}of t){const t=$(n[s]);if(!t?.length)continue;const c=t.map((e,t)=>{const n=l(e);return n?w(`[${t}]`,n,[...o,s,String(t)],r+1,a,!1):{id:`${o.join(".")}.${s}[${t}]`,name:`[${t}]`,metadata:{jsonPath:[...o,s,String(t)],kind:"unknown",isLeaf:!0}}});b=[...b??[],{id:`${o.join(".")}.${s}`,name:s,children:e(c),metadata:{jsonPath:[...o,s],kind:i}}],I=!1}}const O=$(n.enum);return O?.length&&!b?.length&&(f.kind="enum",I=!0),k&&a.refStack.delete(k),{id:o.join(".")||"root",name:t,order:m[t],metadata:{...f,isLeaf:I},children:b}}function b(e,t={}){const n={...f,...t},o=[],r=l(e);if(!r)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};return{root:w("root",r,[],0,{options:n,warnings:o,refStack:new Set},!0),warnings:o}}function I(e,t){if(0===t.length)return e;const n=t.join("."),o=[e];for(;o.length>0;){const e=o.shift();if(!e)continue;const t=e.metadata?.jsonPath?.join(".");if(t===n)return e;for(const t of e.children??[])o.push(t)}}function A(e){return"enum"===e.kind?"enum":"ref"===e.kind?"$ref":e.format?`${k(e.type)} (${e.format})`:k(e.type)}var O=["get","put","post","delete","options","head","patch","trace"],j={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function _(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function C(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function v(e){return"boolean"==typeof e?e:void 0}function N(e){return Array.isArray(e)?e:void 0}function M(e,t){return!t&&(!0===v(e["x-scalar-ignore"])||!0===v(e["x-internal"]))}function E(e){const t=e["x-order"];return"number"==typeof t&&Number.isFinite(t)?t:void 0}function R(e){return C(e["x-displayName"])}function x(t,n){const o=[],r=N(t.parameters);if(r?.length){const t=function(t,n){const o=[];for(const e of t){const t=_(e);if(!t)continue;const r=C(t.name),a=C(t.in);if(!r||!a)continue;const s=`${a}:${r}`;o.push({id:`${n}/parameters/${encodeURIComponent(s)}`,name:r,metadata:{paramIn:a,required:!0===v(t.required),description:C(t.description),pointer:`${n}/parameters`,kind:"parameter"}})}return e(o)}(r,n);t.length>0&&o.push({id:`${n}/parameters`,name:"Parameters",children:t,metadata:{pointer:`${n}/parameters`,kind:"parameters"}})}const a=_(t.requestBody);if(a){const e=_(a.content),t=[];if(e)for(const[o]of Object.entries(e))t.push({id:`${n}/requestBody/content/${encodeURIComponent(o)}`,name:o,metadata:{contentType:o,pointer:`${n}/requestBody/content/${encodeURIComponent(o)}`,kind:"content"}});o.push({id:`${n}/requestBody`,name:"Request Body",metadata:{description:C(a.description),required:!0===v(a.required),pointer:`${n}/requestBody`,kind:"request-body"},children:t.length>0?t:void 0})}const s=_(t.responses);if(s){const t=function(t,n){const o=[];for(const[e,r]of Object.entries(t)){const t=_(r);if(!t)continue;const a=C(t.description),s=_(t.content),i=[];if(s)for(const[t]of Object.entries(s))i.push({id:`${n}/responses/${encodeURIComponent(e)}/content/${encodeURIComponent(t)}`,name:t,metadata:{contentType:t,pointer:`${n}/responses/${encodeURIComponent(e)}/content/${encodeURIComponent(t)}`,kind:"content"}});o.push({id:`${n}/responses/${encodeURIComponent(e)}`,name:e,metadata:{statusCode:e,description:a,pointer:`${n}/responses/${encodeURIComponent(e)}`,kind:"response"},children:i.length>0?i:void 0})}return e(o)}(s,n);t.length>0&&o.push({id:`${n}/responses`,name:"Responses",children:t,metadata:{pointer:`${n}/responses`,kind:"responses"}})}return o}function S(e,t,n,o){const r=t.expandOperationDetails?x(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:E(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:n,kind:"operation"},children:r&&r.length>0?r:void 0}}function U(t,n,o,r){const a=new Map;for(const e of t)a.set(e.name,e);const s=new Map;for(const e of t){if(!e.parent){s.set(e.name,null);continue}if(!a.has(e.parent)){r.push(`Tag "${e.name}" references unknown parent "${e.parent}", treating as root.`),s.set(e.name,null);continue}const t=[e.name];let n=e.parent,o=!1;for(;n;){if(t.includes(n)){o=!0,r.push(`Circular tag reference detected: ${t.join(" -> ")} -> ${n}. Breaking cycle.`);break}t.push(n),n=a.get(n)?.parent}s.set(e.name,o?null:e.parent)}const i=new Map;for(const e of n){if(M(e.raw,o.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=i.get(n)??[];t.push(e),i.set(n,t)}}const c=new Map;for(const e of t){const t=s.get(e.name)??null??"__root__",n=c.get(t)??[];n.push(e),c.set(t,n)}const d=t=>{const n=c.get(t)??[];return e(n.map(t=>{const n=(t=>{const n=(i.get(t.name)??[]).map(e=>S(e,o,"oas32-parent",t.name));return{id:`tag:${t.name}`,name:t.displayName,order:t.order,children:e(n),metadata:{description:t.description,source:"oas32-parent",kind:"tag"}}})(t),r=d(t.name);return r.length>0&&(n.children=e([...n.children??[],...r])),n}))},p=d("__root__"),u=i.get("Other")??[];if(u.length>0){const t=u.map(e=>S(e,o,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:e(t),metadata:{source:"fallback",kind:"tag"}})}return e(p)}function D(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){const e=_(n);if(!e||"string"!=typeof e.name)continue;const o={name:e.name};Array.isArray(e.tags)&&(o.tags=e.tags.filter(e=>"string"==typeof e)),Array.isArray(e.groups)&&(o.groups=D(e.groups)),t.push(o)}return t}function q(t,n,o,r,a,s=0){const i=[];if(t.tags)for(const s of t.tags){const t=n.get(s);if(!t||0===t.length)continue;const c=t.map(e=>S(e,a,"tag-group",s));i.push({id:`tag:${s}`,name:o.get(s)??s,order:r.get(s),children:e(c),metadata:{source:"tag-group",kind:"tag"}})}if(t.groups)for(const e of t.groups)i.push(q(e,n,o,r,a,s+1));return{id:`tag-group:${t.name}`,name:t.name,order:1e3*s,children:e(i),metadata:{source:"tag-group",kind:"tag-group"}}}function T(t,n,o,r){const a=new Map,s=new Map,i=new Map;for(let e=0;e<n.length;e+=1)s.set(n[e].name,e),i.set(n[e].name,n[e].displayName);for(const e of o){if(M(e.raw,r.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=a.get(n)??[];t.push(e),a.set(n,t)}}const c=D(t["x-tagGroups"]).map(e=>q(e,a,i,s,r)),d=a.get("Other");if(d&&d.length>0){const t=d.map(e=>S(e,r,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:e(t),metadata:{source:"fallback",kind:"tag"}})}return e(c)}function G(e){return e.map(e=>{const t=e.children?G(e.children):void 0,n="operation"===e.metadata?.kind?1:0,o=t?.reduce((e,t)=>e+(t.metadata?.operationCount??0),0)??0;return{...e,children:t,metadata:{...e.metadata,operationCount:n+o}}})}function F(t,n={}){const o={...j,...n},r=[],a=_(t);if(!a)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const s=function(e){const t=_(e.paths);if(!t)return[];const n=[];for(const[e,o]of Object.entries(t)){const t=_(o);if(t)for(const o of O){const r=_(t[o]);if(!r)continue;const a=C(r.operationId),s=C(r.summary),i=C(r.description),c=N(r.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],d=s??a??`${o.toUpperCase()} ${e}`,p=a??`${o}:${e}`,u=`/paths/${encodeURIComponent(e)}/${o}`;n.push({id:p,path:e,method:o,name:d,summary:s,description:i,operationId:a,deprecated:!0===v(r.deprecated),tags:c,pointer:u,raw:r})}}return n}(a),i=function(e){const t=N(e.tags);if(!t)return[];const n=[];for(const e of t){const t=_(e),o=C(t?.name);o&&t&&n.push({name:o,displayName:R(t)??o,description:C(t.description),parent:C(t.parent),order:E(t)})}return n}(a);let c;c=function(e){return e.some(e=>void 0!==e.parent)}(i)?U(i,s,o,r):function(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}(a)?T(a,i,s,o):function(t,n,o){const r=new Map,a=new Map;for(let e=0;e<t.length;e+=1)a.set(t[e].name,e);for(const e of n){if(M(e.raw,o.showInternal))continue;const t=e.tags.length>0?e.tags:["Other"];for(const n of t){const t=r.get(n)??[];t.push(e),r.set(n,t)}}const s=new Map;for(const e of t)s.set(e.name,e.displayName);const i=[];for(const[t,n]of r){const r=n.map(e=>S(e,o,"tag",t));i.push({id:`tag:${t}`,name:s.get(t)??t,order:"Other"===t?Number.MAX_SAFE_INTEGER:a.get(t),children:e(r),metadata:{source:"tag",kind:"tag"}})}return e(i)}(i,s,o);const d=function(t,n){if(!n.showComponents)return;const o=_(t.components),r=_(o?.schemas);if(!r)return;const a=[];for(const[e,t]of Object.entries(r)){const o=_(t);o&&!M(o,n.showInternal)&&a.push({id:`schema:${e}`,name:e,order:E(o),metadata:{description:C(o.description),pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==a.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:e(a),metadata:{source:"tag",kind:"component"}}:void 0}(a,o),p=G([...c,...d?[d]:[]]);return{root:{id:"root",name:"API Documentation",children:e(p),metadata:{kind:"root"}},warnings:r}}export{u as buildOpenApiTree,b as buildSchemaTree,I as findSchemaNodeByPath,A as formatSchemaType,F as buildDocTree};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var e,n=Object.defineProperty,t=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,a={};function i(e){return null!=e}function s(e,n){for(const t of e){if(t.id===n)return t;if(t.children?.length){const e=s(t.children,n);if(e)return e}}}function c(e,n,t=[]){for(const o of e){const e=[...t,o];if(o.id===n)return{nodes:e,target:o,parent:t[t.length-1],ancestorIds:t.map(e=>e.id)};if(o.children?.length){const t=c(o.children,n,e);if(t)return t}}return null}function d(e){const n=[],t=e=>{if(e.children?.length)for(const n of e.children)t(n);else n.push(e)};for(const n of e)t(n);return n}function u(e){let n=0;const t=e=>{n+=1;for(const n of e.children??[])t(n)};for(const n of e)t(n);return n}function p(e){let n=0;const t=(e,o)=>{n=Math.max(n,o);for(const n of e.children??[])t(n,o+1)};for(const n of e)t(n,1);return n}function f(e){return[...e].sort((e,n)=>{const t=e.order??Number.MAX_SAFE_INTEGER,o=n.order??Number.MAX_SAFE_INTEGER;if(t!==o)return t-o;return e.name.localeCompare(n.name,"en-US",{numeric:!0,sensitivity:"base"})||e.id.localeCompare(n.id)})}function m(e){return f(e).map(e=>e.children?.length?{...e,children:m(e.children)}:e)}function l(e,n){const t=n.query.trim().toLowerCase();if(!t)return e;const o=n.keepAncestors??!0,r=e=>{const n=(e.children??[]).map(r).filter(i),a=(e=>e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t))(e);return(a||n.length)&&(o||a)?n.length===(e.children?.length??0)?e:{...e,children:n}:null};return e.map(r).filter(i)}function h(e,n={}){const t=n.maxDepth??1/0,o=n.onlyWithChildren??!0,r=[],a=(e,n)=>{if(n>t)return;const i=(e.children?.length??0)>0;o&&!i||r.push(e.id);for(const t of e.children??[])a(t,n+1)};for(const n of e)a(n,1);return r}function g(e){const n=[],t=e=>{const o=e.children;if(o&&0!==o.length){n.push(e.id);for(const e of o)t(e)}};for(const n of e)t(n);return n}function y(e){const n=[],t=(e,o)=>{n.push({node:e,depth:o});for(const n of e.children??[])t(n,o+1)};for(const n of e)t(n,1);return n}function w(e,n,t){let o=!1;const r=e.map(e=>{if(e.id===n)return o=!0,t(e);if(e.children?.length){const r=w(e.children,n,t);if(r!==e.children)return o=!0,{...e,children:r}}return e});return o?r:e}function $(e,n){const t=[];let o=!1;for(const r of e)if(r.id!==n){if(r.children?.length){const e=$(r.children,n);if(e!==r.children){o=!0,t.push({...r,children:e});continue}}t.push(r)}else o=!0;return o?t:e}function k(e,n,t){let o=!1;const r=e.map(e=>{if(e.id===n)return o=!0,{...e,children:[...e.children??[],t]};if(e.children?.length){const r=k(e.children,n,t);if(r!==e.children)return o=!0,{...e,children:r}}return e});return o?r:e}function b(e,n,t){const o=(e,t)=>{const r=e.findIndex(e=>e.id===n);if(-1!==r)return{array:e,index:r,parentId:t};for(const n of e)if(n.children?.length){const e=o(n.children,n.id);if(e)return e}return null},r=o(e,null);if(!r)return null;const{array:a,index:i,parentId:s}=r,c=Math.max(0,Math.min(t,a.length-1));if(c===i)return{nodes:e,moved:a[i],parentId:s,fromIndex:i,toIndex:i};const d=[...a],[u]=d.splice(i,1);d.splice(c,0,u);const p=e=>null===s?d:e.map(e=>e.id===s?{...e,children:d}:e.children?.length?{...e,children:p(e.children)}:e);return{nodes:p(e),moved:u,parentId:s,fromIndex:i,toIndex:c}}function I(e,n,t,o){let r=null;if(null!==t){const o=c(e,n);if(o&&o.ancestorIds.includes(t))return null}const a=e=>{const t=[];let o=!1;for(const i of e)if(i.id!==n){if(i.children?.length){const e=a(i.children);if(e!==i.children){o=!0,t.push({...i,children:e});continue}}t.push(i)}else r=i,o=!0;return o?t:e},i=a(e);if(!r)return null;if(null===t){const e=o??i.length,n=[...i];return n.splice(Math.max(0,Math.min(e,n.length)),0,r),n}let s=!1;const d=e=>e.map(e=>{if(e.id===t){s=!0;const n=[...e.children??[]],t=o??n.length;return n.splice(Math.max(0,Math.min(t,n.length)),0,r),{...e,children:n}}return e.children?.length?{...e,children:d(e.children)}:e}),u=d(i);return s?u:null}((e,t)=>{for(var o in t)n(e,o,{get:t[o],enumerable:!0})})(a,{buildDocTree:()=>ce,buildOpenApiTree:()=>S,buildSchemaTree:()=>X,countNodes:()=>u,filterTree:()=>l,findNode:()=>s,findPath:()=>c,findSchemaNodeByPath:()=>L,flattenTree:()=>y,formatSchemaType:()=>W,getBranchIds:()=>g,getExpandableIds:()=>h,getLeaves:()=>d,getMaxDepth:()=>p,insertChild:()=>k,isTreeNode:()=>i,moveNode:()=>I,removeNode:()=>$,reorderNode:()=>b,sortNodes:()=>f,sortTree:()=>m,updateNode:()=>w}),module.exports=(e=a,((e,a,i,s)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let c of o(a))r.call(e,c)||c===i||n(e,c,{get:()=>a[c],enumerable:!(s=t(a,c))||s.enumerable});return e})(n({},"__esModule",{value:!0}),e));var A=["get","put","post","delete","options","head","patch","trace"],O={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function j(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function v(e){return"boolean"==typeof e?e:void 0}function C(e){return Array.isArray(e)?e:void 0}function M(e,n){return!n&&(!0===v(e["x-scalar-ignore"])||!0===v(e["x-internal"]))}function _(e){return"number"==typeof(n=e["x-order"])&&Number.isFinite(n)?n:void 0;var n}function x(e){return j(e["x-displayName"])}function E(e,n,t,o){const r=new Map;for(const n of e)r.set(n.name,n);const a=new Map;for(const n of e){if(!n.parent){a.set(n.name,null);continue}if(!r.has(n.parent)){o.push(`Tag "${n.name}" references unknown parent "${n.parent}", treating as root.`),a.set(n.name,null);continue}const e=[n.name];let t=n.parent,i=!1;for(;t;){if(e.includes(t)){i=!0,o.push(`Circular tag reference detected: ${e.join(" -> ")} -> ${t}. Breaking cycle.`);break}e.push(t),t=r.get(t)?.parent}a.set(n.name,i?null:n.parent)}const i=new Map;for(const e of n){if(M(e.raw,t.showInternal))continue;const n=e.tags.length>0?e.tags:["Other"];for(const t of n){const n=i.get(t)??[];n.push(e),i.set(t,n)}}const s=new Map;for(const n of e){const e=a.get(n.name)??null??"__root__",t=s.get(e)??[];t.push(n),s.set(e,t)}const c=e=>f((s.get(e)??[]).map(e=>{const n=(e=>{const n=(i.get(e.name)??[]).map(n=>({id:`op:${e.name}:${n.id}`,name:n.name,order:_(n.raw),metadata:{method:n.method,path:n.path,operationId:n.operationId,deprecated:n.deprecated,summary:n.summary,pointer:n.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${e.name}`,name:e.displayName,order:e.order,children:f(n),metadata:{source:"oas32-parent",kind:"tag"}}})(e),t=c(e.name);return t.length>0&&(n.children=f([...n.children??[],...t])),n})),d=c("__root__"),u=i.get("Other")??[];if(u.length>0){const e=u.map(e=>({id:`op:Other:${e.id}`,name:e.name,order:_(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"}}));d.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(e),metadata:{source:"fallback",kind:"tag"}})}return f(d)}function S(e,n={}){const t={...O,...n},o=[],r=N(e);if(!r)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const a=function(e){const n=N(e.paths);if(!n)return[];const t=[];for(const[e,o]of Object.entries(n)){const n=N(o);if(n)for(const o of A){const r=n[o];if(null==r)continue;const a=N(r);if(!a)continue;const i=j(a.operationId),s=j(a.summary),c=C(a.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],d=s??i??`${o.toUpperCase()} ${e}`,u=i??`${o}:${e}`,p=`/paths/${encodeURIComponent(e)}/${o}`;t.push({id:u,path:e,method:o,name:d,summary:s,operationId:i,deprecated:!0===v(a.deprecated),tags:c,pointer:p,raw:a})}}return t}(r),i=function(e){const n=C(e.tags);if(!n)return[];const t=[];for(const e of n){const n=N(e),o=j(n?.name);o&&n&&t.push({name:o,displayName:x(n)??o,description:j(n.description),parent:j(n.parent),order:_(n),raw:n})}return t}(r);let s;if(function(e){return e.some(e=>void 0!==e.parent)}(i))s=E(i,a,t,o);else{const e=function(e){const n=C(e["x-tagGroups"]);if(!n)return[];const t=(e,n)=>{const o=N(e),r=j(o?.name),a=C(o?.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[];if(!r)return null;const i=C(o?.groups)?.map((e,n)=>t(e,n)).filter(e=>null!==e)??[];return{name:r,tags:a,groups:i.length>0?i:void 0,order:_(o??{})??n}};return n.map((e,n)=>t(e,n)).filter(e=>null!==e)}(r);s=e.length>0?function(e,n,t,o){const r=new Map;for(const e of n)r.set(e.name,e.displayName);const a=new Map;for(const e of t)if(!M(e.raw,o.showInternal))for(const n of e.tags){const t=a.get(n)??[];t.push(e),a.set(n,t)}const i=e=>(a.get(e)??[]).map(n=>({id:`op:${e}:${n.id}`,name:n.name,order:_(n.raw),metadata:{method:n.method,path:n.path,operationId:n.operationId,deprecated:n.deprecated,summary:n.summary,pointer:n.pointer,source:"tag-group",kind:"operation"}})),s=e=>({id:`tag:${e}`,name:r.get(e)??e,children:f(i(e)),metadata:{source:"tag-group",kind:"tag"}}),c=e=>{const n=[];for(const t of e.tags){const e=a.get(t);e?.length&&n.push(s(t))}for(const t of e.groups??[])n.push(c(t));return{id:`tag-group:${e.name}`,name:e.name,order:e.order,children:f(n),metadata:{source:"tag-group",kind:"tag-group"}}};return f(e.map(c))}(e,i,a,t):function(e,n,t){const o=new Map,r=new Map;for(let n=0;n<e.length;n+=1){const t=e[n];r.set(t.name,t.order??n)}for(const e of n){if(M(e.raw,t.showInternal))continue;const n=e.tags.length>0?e.tags:["Other"];for(const t of n){const n=o.get(t)??[];n.push(e),o.set(t,n)}}const a=new Map;for(const n of e)a.set(n.name,n.displayName);const i=[];for(const[e,n]of o){const t=n.map(n=>({id:`op:${e}:${n.id}`,name:n.name,order:_(n.raw),metadata:{method:n.method,path:n.path,operationId:n.operationId,deprecated:n.deprecated,summary:n.summary,pointer:n.pointer,source:"tag",kind:"operation"}}));i.push({id:`tag:${e}`,name:a.get(e)??e,order:"Other"===e?Number.MAX_SAFE_INTEGER:r.get(e),children:f(t),metadata:{source:"tag",kind:"tag"}})}return f(i)}(i,a,t)}const c=function(e,n){if(!n.showWebhooks)return;const t=N(e.webhooks);if(!t)return;const o=[];for(const[e,r]of Object.entries(t)){const t=N(r);if(t)for(const r of A){const a=N(t[r]);if(!a||M(a,n.showInternal))continue;const i=j(a.operationId),s=j(a.summary),c=s??i??`${r.toUpperCase()} ${e}`;o.push({id:`webhook:${e}:${r}`,name:c,order:_(a),metadata:{method:r,path:e,operationId:i,deprecated:!0===v(a.deprecated),summary:s,pointer:`/webhooks/${encodeURIComponent(e)}/${r}`,source:"tag",kind:"webhook"}})}}return 0!==o.length?{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}:void 0}(r,t),d=function(e,n){if(!n.showComponents)return;const t=N(e.components),o=N(t?.schemas);if(!o)return;const r=[];for(const[e,t]of Object.entries(o)){const o=N(t);o&&!M(o,n.showInternal)&&r.push({id:`schema:${e}`,name:e,order:_(o),metadata:{pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==r.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(r),metadata:{source:"section",kind:"section",section:"components"}}:void 0}(r,t);return{root:{id:"root",name:"OpenAPI",children:f([{id:"section:apis",name:"APIs",children:s,metadata:{kind:"section",source:"section",section:"apis"},order:0},...c?[c]:[],...d?[d]:[]]),metadata:{kind:"root"}},warnings:o}}var R={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},T={maxDepth:8,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},U=new Set(["string","number","integer","boolean","null"]);function D(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function P(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function q(e){return"boolean"==typeof e?e:void 0}function G(e){return Array.isArray(e)?e:void 0}function F(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function B(e,n,t,o,r,a){const i=function(e){const n=e.type;return"string"==typeof n||Array.isArray(n)&&n.every(e=>"string"==typeof e)?n:void 0}(n),s=P(n.format),c=P(n.description),d=!0===q(n.deprecated),u=function(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"}}(i),p={jsonPath:t,type:i,format:s,required:a,deprecated:d,description:c,kind:u},m=P(n.$ref);if(m){if(r.refStack.has(m))return r.warnings.push(`Circular $ref detected at ${t.join(".")}: ${m}. Breaking recursion.`),{id:t.join(".")||"root",name:e,metadata:{...p,kind:"ref",isLeaf:!0}};r.refStack.add(m)}let l,h=function(e){return!!e&&(Array.isArray(e)?e.every(e=>U.has(e)):U.has(e))}(i);if(o>=r.options.maxDepth)return m&&r.refStack.delete(m),{id:t.join(".")||"root",name:e,metadata:{...p,isLeaf:!0}};const g=D(n.properties);if(g){const e=G(n.required)??[],a=new Set(e.filter(e=>"string"==typeof e)),i=[];for(const[e,n]of Object.entries(g)){const s=D(n);s&&((r.options.showDeprecated||!0!==q(s.deprecated))&&i.push(B(e,s,[...t,"properties",e],o+1,r,a.has(e))))}l=[...l??[],...f(i)],h=!1}if(r.options.showArrayItems&&"array"===i){const e=D(n.items);if(e){l=[...l??[],B("items",e,[...t,"items"],o+1,r,!1)],h=!1}else p.hasItems=!1}if(r.options.expandCombinators){const e=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(const{key:a,kind:i}of e){const e=G(n[a]);if(!e?.length)continue;const s=e.map((e,n)=>{const i=D(e);return i?B(`[${n}]`,i,[...t,a,String(n)],o+1,r,!1):{id:`${t.join(".")}.${a}[${n}]`,name:`[${n}]`,metadata:{jsonPath:[...t,a,String(n)],kind:"unknown",isLeaf:!0}}});l=[...l??[],{id:`${t.join(".")}.${a}`,name:a,children:f(s),metadata:{jsonPath:[...t,a],kind:i}}],h=!1}}const y=G(n.enum);return y?.length&&!l?.length&&(p.kind="enum",h=!0),m&&r.refStack.delete(m),{id:t.join(".")||"root",name:e,order:R[e],metadata:{...p,isLeaf:h},children:l}}function X(e,n={}){const t={...T,...n},o=[],r=D(e);if(!r)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};return{root:B("root",r,[],0,{options:t,warnings:o,refStack:new Set},!0),warnings:o}}function L(e,n){if(0===n.length)return e;const t=n.join("."),o=[e];for(;o.length>0;){const e=o.shift();if(!e)continue;const n=e.metadata?.jsonPath?.join(".");if(n===t)return e;for(const n of e.children??[])o.push(n)}}function W(e){return"enum"===e.kind?"enum":"ref"===e.kind?"$ref":e.format?`${F(e.type)} (${e.format})`:F(e.type)}var z=["get","put","post","delete","options","head","patch","trace"],H={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!0};function J(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function K(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function Q(e){return"boolean"==typeof e?e:void 0}function V(e){return Array.isArray(e)?e:void 0}function Y(e,n){return!n&&(!0===Q(e["x-scalar-ignore"])||!0===Q(e["x-internal"]))}function Z(e){const n=e["x-order"];return"number"==typeof n&&Number.isFinite(n)?n:void 0}function ee(e){return K(e["x-displayName"])}function ne(e,n){const t=[],o=V(e.parameters);if(o?.length){const e=function(e,n){const t=[];for(const o of e){const e=J(o);if(!e)continue;const r=K(e.name),a=K(e.in);if(!r||!a)continue;const i=`${a}:${r}`;t.push({id:`${n}/parameters/${encodeURIComponent(i)}`,name:r,metadata:{paramIn:a,required:!0===Q(e.required),description:K(e.description),pointer:`${n}/parameters`,kind:"parameter"}})}return f(t)}(o,n);e.length>0&&t.push({id:`${n}/parameters`,name:"Parameters",children:e,metadata:{pointer:`${n}/parameters`,kind:"parameters"}})}const r=J(e.requestBody);if(r){const e=J(r.content),o=[];if(e)for(const[t]of Object.entries(e))o.push({id:`${n}/requestBody/content/${encodeURIComponent(t)}`,name:t,metadata:{contentType:t,pointer:`${n}/requestBody/content/${encodeURIComponent(t)}`,kind:"content"}});t.push({id:`${n}/requestBody`,name:"Request Body",metadata:{description:K(r.description),required:!0===Q(r.required),pointer:`${n}/requestBody`,kind:"request-body"},children:o.length>0?o:void 0})}const a=J(e.responses);if(a){const e=function(e,n){const t=[];for(const[o,r]of Object.entries(e)){const e=J(r);if(!e)continue;const a=K(e.description),i=J(e.content),s=[];if(i)for(const[e]of Object.entries(i))s.push({id:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(e)}`,name:e,metadata:{contentType:e,pointer:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(e)}`,kind:"content"}});t.push({id:`${n}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:a,pointer:`${n}/responses/${encodeURIComponent(o)}`,kind:"response"},children:s.length>0?s:void 0})}return f(t)}(a,n);e.length>0&&t.push({id:`${n}/responses`,name:"Responses",children:e,metadata:{pointer:`${n}/responses`,kind:"responses"}})}return t}function te(e,n,t,o){const r=n.expandOperationDetails?ne(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:Z(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:t,kind:"operation"},children:r&&r.length>0?r:void 0}}function oe(e,n,t,o){const r=new Map;for(const n of e)r.set(n.name,n);const a=new Map;for(const n of e){if(!n.parent){a.set(n.name,null);continue}if(!r.has(n.parent)){o.push(`Tag "${n.name}" references unknown parent "${n.parent}", treating as root.`),a.set(n.name,null);continue}const e=[n.name];let t=n.parent,i=!1;for(;t;){if(e.includes(t)){i=!0,o.push(`Circular tag reference detected: ${e.join(" -> ")} -> ${t}. Breaking cycle.`);break}e.push(t),t=r.get(t)?.parent}a.set(n.name,i?null:n.parent)}const i=new Map;for(const e of n){if(Y(e.raw,t.showInternal))continue;const n=e.tags.length>0?e.tags:["Other"];for(const t of n){const n=i.get(t)??[];n.push(e),i.set(t,n)}}const s=new Map;for(const n of e){const e=a.get(n.name)??null??"__root__",t=s.get(e)??[];t.push(n),s.set(e,t)}const c=e=>f((s.get(e)??[]).map(e=>{const n=(e=>{const n=(i.get(e.name)??[]).map(n=>te(n,t,"oas32-parent",e.name));return{id:`tag:${e.name}`,name:e.displayName,order:e.order,children:f(n),metadata:{description:e.description,source:"oas32-parent",kind:"tag"}}})(e),o=c(e.name);return o.length>0&&(n.children=f([...n.children??[],...o])),n})),d=c("__root__"),u=i.get("Other")??[];if(u.length>0){const e=u.map(e=>te(e,t,"fallback","Other"));d.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(e),metadata:{source:"fallback",kind:"tag"}})}return f(d)}function re(e){if(!Array.isArray(e))return[];const n=[];for(const t of e){const e=J(t);if(!e||"string"!=typeof e.name)continue;const o={name:e.name};Array.isArray(e.tags)&&(o.tags=e.tags.filter(e=>"string"==typeof e)),Array.isArray(e.groups)&&(o.groups=re(e.groups)),n.push(o)}return n}function ae(e,n,t,o,r,a=0){const i=[];if(e.tags)for(const a of e.tags){const e=n.get(a);if(!e||0===e.length)continue;const s=e.map(e=>te(e,r,"tag-group",a));i.push({id:`tag:${a}`,name:t.get(a)??a,order:o.get(a),children:f(s),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(const s of e.groups)i.push(ae(s,n,t,o,r,a+1));return{id:`tag-group:${e.name}`,name:e.name,order:1e3*a,children:f(i),metadata:{source:"tag-group",kind:"tag-group"}}}function ie(e,n,t,o){const r=new Map,a=new Map,i=new Map;for(let e=0;e<n.length;e+=1)a.set(n[e].name,e),i.set(n[e].name,n[e].displayName);for(const e of t){if(Y(e.raw,o.showInternal))continue;const n=e.tags.length>0?e.tags:["Other"];for(const t of n){const n=r.get(t)??[];n.push(e),r.set(t,n)}}const s=re(e["x-tagGroups"]).map(e=>ae(e,r,i,a,o)),c=r.get("Other");if(c&&c.length>0){const e=c.map(e=>te(e,o,"fallback","Other"));s.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(e),metadata:{source:"fallback",kind:"tag"}})}return f(s)}function se(e){return e.map(e=>{const n=e.children?se(e.children):void 0,t="operation"===e.metadata?.kind?1:0,o=n?.reduce((e,n)=>e+(n.metadata?.operationCount??0),0)??0;return{...e,children:n,metadata:{...e.metadata,operationCount:t+o}}})}function ce(e,n={}){const t={...H,...n},o=[],r=J(e);if(!r)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const a=function(e){const n=J(e.paths);if(!n)return[];const t=[];for(const[e,o]of Object.entries(n)){const n=J(o);if(n)for(const o of z){const r=J(n[o]);if(!r)continue;const a=K(r.operationId),i=K(r.summary),s=K(r.description),c=V(r.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],d=i??a??`${o.toUpperCase()} ${e}`,u=a??`${o}:${e}`,p=`/paths/${encodeURIComponent(e)}/${o}`;t.push({id:u,path:e,method:o,name:d,summary:i,description:s,operationId:a,deprecated:!0===Q(r.deprecated),tags:c,pointer:p,raw:r})}}return t}(r),i=function(e){const n=V(e.tags);if(!n)return[];const t=[];for(const e of n){const n=J(e),o=K(n?.name);o&&n&&t.push({name:o,displayName:ee(n)??o,description:K(n.description),parent:K(n.parent),order:Z(n)})}return t}(r);let s;s=function(e){return e.some(e=>void 0!==e.parent)}(i)?oe(i,a,t,o):function(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}(r)?ie(r,i,a,t):function(e,n,t){const o=new Map,r=new Map;for(let n=0;n<e.length;n+=1)r.set(e[n].name,n);for(const e of n){if(Y(e.raw,t.showInternal))continue;const n=e.tags.length>0?e.tags:["Other"];for(const t of n){const n=o.get(t)??[];n.push(e),o.set(t,n)}}const a=new Map;for(const n of e)a.set(n.name,n.displayName);const i=[];for(const[e,n]of o){const o=n.map(n=>te(n,t,"tag",e));i.push({id:`tag:${e}`,name:a.get(e)??e,order:"Other"===e?Number.MAX_SAFE_INTEGER:r.get(e),children:f(o),metadata:{source:"tag",kind:"tag"}})}return f(i)}(i,a,t);const c=function(e,n){if(!n.showComponents)return;const t=J(e.components),o=J(t?.schemas);if(!o)return;const r=[];for(const[e,t]of Object.entries(o)){const o=J(t);o&&!Y(o,n.showInternal)&&r.push({id:`schema:${e}`,name:e,order:Z(o),metadata:{description:K(o.description),pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==r.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(r),metadata:{source:"tag",kind:"component"}}:void 0}(r,t);return{root:{id:"root",name:"API Documentation",children:f(se([...s,...c?[c]:[]])),metadata:{kind:"root"}},warnings:o}}
1
+ "use strict";var e,n=Object.defineProperty,t=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,a={};function i(e){return null!=e}function s(e,n){for(const t of e){if(t.id===n)return t;if(t.children?.length){const e=s(t.children,n);if(e)return e}}}function c(e,n,t=[]){for(const o of e){const e=[...t,o];if(o.id===n)return{nodes:e,target:o,parent:t[t.length-1],ancestorIds:t.map(e=>e.id)};if(o.children?.length){const t=c(o.children,n,e);if(t)return t}}return null}function d(e){const n=[],t=e=>{if(e.children?.length)for(const n of e.children)t(n);else n.push(e)};for(const n of e)t(n);return n}function u(e){let n=0;const t=e=>{n+=1;for(const n of e.children??[])t(n)};for(const n of e)t(n);return n}function p(e){let n=0;const t=(e,o)=>{n=Math.max(n,o);for(const n of e.children??[])t(n,o+1)};for(const n of e)t(n,1);return n}function f(e){return[...e].sort((e,n)=>{const t=e.order??Number.MAX_SAFE_INTEGER,o=n.order??Number.MAX_SAFE_INTEGER;if(t!==o)return t-o;return e.name.localeCompare(n.name,"en-US",{numeric:!0,sensitivity:"base"})||e.id.localeCompare(n.id)})}function m(e){return f(e).map(e=>e.children?.length?{...e,children:m(e.children)}:e)}function l(e,n){const t=n.query.trim().toLowerCase();if(!t)return e;const o=n.keepAncestors??!0,r=e=>{const n=(e.children??[]).map(r).filter(i),a=(e=>e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t))(e);return(a||n.length)&&(o||a)?n.length===(e.children?.length??0)?e:{...e,children:n}:null};return e.map(r).filter(i)}function h(e,n={}){const t=n.maxDepth??1/0,o=n.onlyWithChildren??!0,r=[],a=(e,n)=>{if(n>t)return;const i=(e.children?.length??0)>0;o&&!i||r.push(e.id);for(const t of e.children??[])a(t,n+1)};for(const n of e)a(n,1);return r}function g(e){const n=[],t=e=>{const o=e.children;if(o&&0!==o.length){n.push(e.id);for(const e of o)t(e)}};for(const n of e)t(n);return n}function y(e){const n=[],t=(e,o)=>{n.push({node:e,depth:o});for(const n of e.children??[])t(n,o+1)};for(const n of e)t(n,1);return n}function w(e,n,t){let o=!1;const r=e.map(e=>{if(e.id===n)return o=!0,t(e);if(e.children?.length){const r=w(e.children,n,t);if(r!==e.children)return o=!0,{...e,children:r}}return e});return o?r:e}function $(e,n){const t=[];let o=!1;for(const r of e)if(r.id!==n){if(r.children?.length){const e=$(r.children,n);if(e!==r.children){o=!0,t.push({...r,children:e});continue}}t.push(r)}else o=!0;return o?t:e}function k(e,n,t){let o=!1;const r=e.map(e=>{if(e.id===n)return o=!0,{...e,children:[...e.children??[],t]};if(e.children?.length){const r=k(e.children,n,t);if(r!==e.children)return o=!0,{...e,children:r}}return e});return o?r:e}function b(e,n,t){const o=(e,t)=>{const r=e.findIndex(e=>e.id===n);if(-1!==r)return{array:e,index:r,parentId:t};for(const n of e)if(n.children?.length){const e=o(n.children,n.id);if(e)return e}return null},r=o(e,null);if(!r)return null;const{array:a,index:i,parentId:s}=r,c=Math.max(0,Math.min(t,a.length-1));if(c===i)return{nodes:e,moved:a[i],parentId:s,fromIndex:i,toIndex:i};const d=[...a],[u]=d.splice(i,1);d.splice(c,0,u);const p=e=>null===s?d:e.map(e=>e.id===s?{...e,children:d}:e.children?.length?{...e,children:p(e.children)}:e);return{nodes:p(e),moved:u,parentId:s,fromIndex:i,toIndex:c}}function I(e,n,t,o){let r=null;if(null!==t){const o=c(e,n);if(o&&o.ancestorIds.includes(t))return null}const a=e=>{const t=[];let o=!1;for(const i of e)if(i.id!==n){if(i.children?.length){const e=a(i.children);if(e!==i.children){o=!0,t.push({...i,children:e});continue}}t.push(i)}else r=i,o=!0;return o?t:e},i=a(e);if(!r)return null;if(null===t){const e=o??i.length,n=[...i];return n.splice(Math.max(0,Math.min(e,n.length)),0,r),n}let s=!1;const d=e=>e.map(e=>{if(e.id===t){s=!0;const n=[...e.children??[]],t=o??n.length;return n.splice(Math.max(0,Math.min(t,n.length)),0,r),{...e,children:n}}return e.children?.length?{...e,children:d(e.children)}:e}),u=d(i);return s?u:null}((e,t)=>{for(var o in t)n(e,o,{get:t[o],enumerable:!0})})(a,{buildDocTree:()=>ce,buildOpenApiTree:()=>S,buildSchemaTree:()=>X,countNodes:()=>u,filterTree:()=>l,findNode:()=>s,findPath:()=>c,findSchemaNodeByPath:()=>L,flattenTree:()=>y,formatSchemaType:()=>W,getBranchIds:()=>g,getExpandableIds:()=>h,getLeaves:()=>d,getMaxDepth:()=>p,insertChild:()=>k,isTreeNode:()=>i,moveNode:()=>I,removeNode:()=>$,reorderNode:()=>b,sortNodes:()=>f,sortTree:()=>m,updateNode:()=>w}),module.exports=(e=a,((e,a,i,s)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let c of o(a))r.call(e,c)||c===i||n(e,c,{get:()=>a[c],enumerable:!(s=t(a,c))||s.enumerable});return e})(n({},"__esModule",{value:!0}),e));var A=["get","put","post","delete","options","head","patch","trace"],O={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function j(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function v(e){return"boolean"==typeof e?e:void 0}function C(e){return Array.isArray(e)?e:void 0}function M(e,n){return!n&&(!0===v(e["x-scalar-ignore"])||!0===v(e["x-internal"]))}function _(e){return"number"==typeof(n=e["x-order"])&&Number.isFinite(n)?n:void 0;var n}function x(e){return j(e["x-displayName"])}function E(e,n,t,o){const r=new Map;for(const n of e)r.set(n.name,n);const a=new Map;for(const n of e){if(!n.parent){a.set(n.name,null);continue}if(!r.has(n.parent)){o.push(`Tag "${n.name}" references unknown parent "${n.parent}", treating as root.`),a.set(n.name,null);continue}const e=[n.name];let t=n.parent,i=!1;for(;t;){if(e.includes(t)){i=!0,o.push(`Circular tag reference detected: ${e.join(" -> ")} -> ${t}. Breaking cycle.`);break}e.push(t),t=r.get(t)?.parent}a.set(n.name,i?null:n.parent)}const i=new Map;for(const e of n){if(M(e.raw,t.showInternal))continue;const n=e.tags.length>0?e.tags:["Other"];for(const t of n){const n=i.get(t)??[];n.push(e),i.set(t,n)}}const s=new Map;for(const n of e){const e=a.get(n.name)??null??"__root__",t=s.get(e)??[];t.push(n),s.set(e,t)}const c=e=>f((s.get(e)??[]).map(e=>{const n=(e=>{const n=(i.get(e.name)??[]).map(n=>({id:`op:${e.name}:${n.id}`,name:n.name,order:_(n.raw),metadata:{method:n.method,path:n.path,operationId:n.operationId,deprecated:n.deprecated,summary:n.summary,pointer:n.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${e.name}`,name:e.displayName,order:e.order,children:f(n),metadata:{source:"oas32-parent",kind:"tag"}}})(e),t=c(e.name);return t.length>0&&(n.children=f([...n.children??[],...t])),n})),d=c("__root__"),u=i.get("Other")??[];if(u.length>0){const e=u.map(e=>({id:`op:Other:${e.id}`,name:e.name,order:_(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"}}));d.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(e),metadata:{source:"fallback",kind:"tag"}})}return f(d)}function S(e,n={}){const t={...O,...n},o=[],r=N(e);if(!r)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const a=function(e){const n=N(e.paths);if(!n)return[];const t=[];for(const[e,o]of Object.entries(n)){const n=N(o);if(n)for(const o of A){const r=n[o];if(null==r)continue;const a=N(r);if(!a)continue;const i=j(a.operationId),s=j(a.summary),c=C(a.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],d=s??i??`${o.toUpperCase()} ${e}`,u=i??`${o}:${e}`,p=`/paths/${encodeURIComponent(e)}/${o}`;t.push({id:u,path:e,method:o,name:d,summary:s,operationId:i,deprecated:!0===v(a.deprecated),tags:c,pointer:p,raw:a})}}return t}(r),i=function(e){const n=C(e.tags);if(!n)return[];const t=[];for(const e of n){const n=N(e),o=j(n?.name);o&&n&&t.push({name:o,displayName:x(n)??o,description:j(n.description),parent:j(n.parent),order:_(n),raw:n})}return t}(r);let s;if(function(e){return e.some(e=>void 0!==e.parent)}(i))s=E(i,a,t,o);else{const e=function(e){const n=C(e["x-tagGroups"]);if(!n)return[];const t=(e,n)=>{const o=N(e),r=j(o?.name),a=C(o?.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[];if(!r)return null;const i=C(o?.groups)?.map((e,n)=>t(e,n)).filter(e=>null!==e)??[];return{name:r,tags:a,groups:i.length>0?i:void 0,order:_(o??{})??n}};return n.map((e,n)=>t(e,n)).filter(e=>null!==e)}(r);s=e.length>0?function(e,n,t,o){const r=new Map;for(const e of n)r.set(e.name,e.displayName);const a=new Map;for(const e of t)if(!M(e.raw,o.showInternal))for(const n of e.tags){const t=a.get(n)??[];t.push(e),a.set(n,t)}const i=e=>(a.get(e)??[]).map(n=>({id:`op:${e}:${n.id}`,name:n.name,order:_(n.raw),metadata:{method:n.method,path:n.path,operationId:n.operationId,deprecated:n.deprecated,summary:n.summary,pointer:n.pointer,source:"tag-group",kind:"operation"}})),s=e=>({id:`tag:${e}`,name:r.get(e)??e,children:f(i(e)),metadata:{source:"tag-group",kind:"tag"}}),c=e=>{const n=[];for(const t of e.tags){const e=a.get(t);e?.length&&n.push(s(t))}for(const t of e.groups??[])n.push(c(t));return{id:`tag-group:${e.name}`,name:e.name,order:e.order,children:f(n),metadata:{source:"tag-group",kind:"tag-group"}}};return f(e.map(c))}(e,i,a,t):function(e,n,t){const o=new Map,r=new Map;for(let n=0;n<e.length;n+=1){const t=e[n];r.set(t.name,t.order??n)}for(const e of n){if(M(e.raw,t.showInternal))continue;const n=e.tags.length>0?e.tags:["Other"];for(const t of n){const n=o.get(t)??[];n.push(e),o.set(t,n)}}const a=new Map;for(const n of e)a.set(n.name,n.displayName);const i=[];for(const[e,n]of o){const t=n.map(n=>({id:`op:${e}:${n.id}`,name:n.name,order:_(n.raw),metadata:{method:n.method,path:n.path,operationId:n.operationId,deprecated:n.deprecated,summary:n.summary,pointer:n.pointer,source:"tag",kind:"operation"}}));i.push({id:`tag:${e}`,name:a.get(e)??e,order:"Other"===e?Number.MAX_SAFE_INTEGER:r.get(e),children:f(t),metadata:{source:"tag",kind:"tag"}})}return f(i)}(i,a,t)}const c=function(e,n){if(!n.showWebhooks)return;const t=N(e.webhooks);if(!t)return;const o=[];for(const[e,r]of Object.entries(t)){const t=N(r);if(t)for(const r of A){const a=N(t[r]);if(!a||M(a,n.showInternal))continue;const i=j(a.operationId),s=j(a.summary),c=s??i??`${r.toUpperCase()} ${e}`;o.push({id:`webhook:${e}:${r}`,name:c,order:_(a),metadata:{method:r,path:e,operationId:i,deprecated:!0===v(a.deprecated),summary:s,pointer:`/webhooks/${encodeURIComponent(e)}/${r}`,source:"tag",kind:"webhook"}})}}return 0!==o.length?{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}:void 0}(r,t),d=function(e,n){if(!n.showComponents)return;const t=N(e.components),o=N(t?.schemas);if(!o)return;const r=[];for(const[e,t]of Object.entries(o)){const o=N(t);o&&!M(o,n.showInternal)&&r.push({id:`schema:${e}`,name:e,order:_(o),metadata:{pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==r.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(r),metadata:{source:"section",kind:"section",section:"components"}}:void 0}(r,t);return{root:{id:"root",name:"OpenAPI",children:f([{id:"section:apis",name:"APIs",children:s,metadata:{kind:"section",source:"section",section:"apis"},order:0},...c?[c]:[],...d?[d]:[]]),metadata:{kind:"root"}},warnings:o}}var R={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},T={maxDepth:8,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},U=new Set(["string","number","integer","boolean","null"]);function D(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function P(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function q(e){return"boolean"==typeof e?e:void 0}function G(e){return Array.isArray(e)?e:void 0}function F(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function B(e,n,t,o,r,a){const i=function(e){const n=e.type;return"string"==typeof n||Array.isArray(n)&&n.every(e=>"string"==typeof e)?n:void 0}(n),s=P(n.format),c=P(n.description),d=!0===q(n.deprecated),u=function(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"}}(i),p={jsonPath:t,type:i,format:s,required:a,deprecated:d,description:c,kind:u},m=P(n.$ref);if(m){if(r.refStack.has(m))return r.warnings.push(`Circular $ref detected at ${t.join(".")}: ${m}. Breaking recursion.`),{id:t.join(".")||"root",name:e,metadata:{...p,kind:"ref",isLeaf:!0}};r.refStack.add(m)}let l,h=function(e){return!!e&&(Array.isArray(e)?e.every(e=>U.has(e)):U.has(e))}(i);if(o>=r.options.maxDepth)return m&&r.refStack.delete(m),{id:t.join(".")||"root",name:e,metadata:{...p,isLeaf:!0}};const g=D(n.properties);if(g){const e=G(n.required)??[],a=new Set(e.filter(e=>"string"==typeof e)),i=[];for(const[e,n]of Object.entries(g)){const s=D(n);s&&((r.options.showDeprecated||!0!==q(s.deprecated))&&i.push(B(e,s,[...t,"properties",e],o+1,r,a.has(e))))}l=[...l??[],...f(i)],h=!1}if(r.options.showArrayItems&&"array"===i){const e=D(n.items);if(e){l=[...l??[],B("items",e,[...t,"items"],o+1,r,!1)],h=!1}else p.hasItems=!1}if(r.options.expandCombinators){const e=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(const{key:a,kind:i}of e){const e=G(n[a]);if(!e?.length)continue;const s=e.map((e,n)=>{const i=D(e);return i?B(`[${n}]`,i,[...t,a,String(n)],o+1,r,!1):{id:`${t.join(".")}.${a}[${n}]`,name:`[${n}]`,metadata:{jsonPath:[...t,a,String(n)],kind:"unknown",isLeaf:!0}}});l=[...l??[],{id:`${t.join(".")}.${a}`,name:a,children:f(s),metadata:{jsonPath:[...t,a],kind:i}}],h=!1}}const y=G(n.enum);return y?.length&&!l?.length&&(p.kind="enum",h=!0),m&&r.refStack.delete(m),{id:t.join(".")||"root",name:e,order:R[e],metadata:{...p,isLeaf:h},children:l}}function X(e,n={}){const t={...T,...n},o=[],r=D(e);if(!r)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};return{root:B("root",r,[],0,{options:t,warnings:o,refStack:new Set},!0),warnings:o}}function L(e,n){if(0===n.length)return e;const t=n.join("."),o=[e];for(;o.length>0;){const e=o.shift();if(!e)continue;const n=e.metadata?.jsonPath?.join(".");if(n===t)return e;for(const n of e.children??[])o.push(n)}}function W(e){return"enum"===e.kind?"enum":"ref"===e.kind?"$ref":e.format?`${F(e.type)} (${e.format})`:F(e.type)}var z=["get","put","post","delete","options","head","patch","trace"],H={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function J(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:e}function K(e){return"string"==typeof e&&e.trim().length>0?e.trim():void 0}function Q(e){return"boolean"==typeof e?e:void 0}function V(e){return Array.isArray(e)?e:void 0}function Y(e,n){return!n&&(!0===Q(e["x-scalar-ignore"])||!0===Q(e["x-internal"]))}function Z(e){const n=e["x-order"];return"number"==typeof n&&Number.isFinite(n)?n:void 0}function ee(e){return K(e["x-displayName"])}function ne(e,n){const t=[],o=V(e.parameters);if(o?.length){const e=function(e,n){const t=[];for(const o of e){const e=J(o);if(!e)continue;const r=K(e.name),a=K(e.in);if(!r||!a)continue;const i=`${a}:${r}`;t.push({id:`${n}/parameters/${encodeURIComponent(i)}`,name:r,metadata:{paramIn:a,required:!0===Q(e.required),description:K(e.description),pointer:`${n}/parameters`,kind:"parameter"}})}return f(t)}(o,n);e.length>0&&t.push({id:`${n}/parameters`,name:"Parameters",children:e,metadata:{pointer:`${n}/parameters`,kind:"parameters"}})}const r=J(e.requestBody);if(r){const e=J(r.content),o=[];if(e)for(const[t]of Object.entries(e))o.push({id:`${n}/requestBody/content/${encodeURIComponent(t)}`,name:t,metadata:{contentType:t,pointer:`${n}/requestBody/content/${encodeURIComponent(t)}`,kind:"content"}});t.push({id:`${n}/requestBody`,name:"Request Body",metadata:{description:K(r.description),required:!0===Q(r.required),pointer:`${n}/requestBody`,kind:"request-body"},children:o.length>0?o:void 0})}const a=J(e.responses);if(a){const e=function(e,n){const t=[];for(const[o,r]of Object.entries(e)){const e=J(r);if(!e)continue;const a=K(e.description),i=J(e.content),s=[];if(i)for(const[e]of Object.entries(i))s.push({id:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(e)}`,name:e,metadata:{contentType:e,pointer:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(e)}`,kind:"content"}});t.push({id:`${n}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:a,pointer:`${n}/responses/${encodeURIComponent(o)}`,kind:"response"},children:s.length>0?s:void 0})}return f(t)}(a,n);e.length>0&&t.push({id:`${n}/responses`,name:"Responses",children:e,metadata:{pointer:`${n}/responses`,kind:"responses"}})}return t}function te(e,n,t,o){const r=n.expandOperationDetails?ne(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:Z(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:t,kind:"operation"},children:r&&r.length>0?r:void 0}}function oe(e,n,t,o){const r=new Map;for(const n of e)r.set(n.name,n);const a=new Map;for(const n of e){if(!n.parent){a.set(n.name,null);continue}if(!r.has(n.parent)){o.push(`Tag "${n.name}" references unknown parent "${n.parent}", treating as root.`),a.set(n.name,null);continue}const e=[n.name];let t=n.parent,i=!1;for(;t;){if(e.includes(t)){i=!0,o.push(`Circular tag reference detected: ${e.join(" -> ")} -> ${t}. Breaking cycle.`);break}e.push(t),t=r.get(t)?.parent}a.set(n.name,i?null:n.parent)}const i=new Map;for(const e of n){if(Y(e.raw,t.showInternal))continue;const n=e.tags.length>0?e.tags:["Other"];for(const t of n){const n=i.get(t)??[];n.push(e),i.set(t,n)}}const s=new Map;for(const n of e){const e=a.get(n.name)??null??"__root__",t=s.get(e)??[];t.push(n),s.set(e,t)}const c=e=>f((s.get(e)??[]).map(e=>{const n=(e=>{const n=(i.get(e.name)??[]).map(n=>te(n,t,"oas32-parent",e.name));return{id:`tag:${e.name}`,name:e.displayName,order:e.order,children:f(n),metadata:{description:e.description,source:"oas32-parent",kind:"tag"}}})(e),o=c(e.name);return o.length>0&&(n.children=f([...n.children??[],...o])),n})),d=c("__root__"),u=i.get("Other")??[];if(u.length>0){const e=u.map(e=>te(e,t,"fallback","Other"));d.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(e),metadata:{source:"fallback",kind:"tag"}})}return f(d)}function re(e){if(!Array.isArray(e))return[];const n=[];for(const t of e){const e=J(t);if(!e||"string"!=typeof e.name)continue;const o={name:e.name};Array.isArray(e.tags)&&(o.tags=e.tags.filter(e=>"string"==typeof e)),Array.isArray(e.groups)&&(o.groups=re(e.groups)),n.push(o)}return n}function ae(e,n,t,o,r,a=0){const i=[];if(e.tags)for(const a of e.tags){const e=n.get(a);if(!e||0===e.length)continue;const s=e.map(e=>te(e,r,"tag-group",a));i.push({id:`tag:${a}`,name:t.get(a)??a,order:o.get(a),children:f(s),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(const s of e.groups)i.push(ae(s,n,t,o,r,a+1));return{id:`tag-group:${e.name}`,name:e.name,order:1e3*a,children:f(i),metadata:{source:"tag-group",kind:"tag-group"}}}function ie(e,n,t,o){const r=new Map,a=new Map,i=new Map;for(let e=0;e<n.length;e+=1)a.set(n[e].name,e),i.set(n[e].name,n[e].displayName);for(const e of t){if(Y(e.raw,o.showInternal))continue;const n=e.tags.length>0?e.tags:["Other"];for(const t of n){const n=r.get(t)??[];n.push(e),r.set(t,n)}}const s=re(e["x-tagGroups"]).map(e=>ae(e,r,i,a,o)),c=r.get("Other");if(c&&c.length>0){const e=c.map(e=>te(e,o,"fallback","Other"));s.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(e),metadata:{source:"fallback",kind:"tag"}})}return f(s)}function se(e){return e.map(e=>{const n=e.children?se(e.children):void 0,t="operation"===e.metadata?.kind?1:0,o=n?.reduce((e,n)=>e+(n.metadata?.operationCount??0),0)??0;return{...e,children:n,metadata:{...e.metadata,operationCount:t+o}}})}function ce(e,n={}){const t={...H,...n},o=[],r=J(e);if(!r)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};const a=function(e){const n=J(e.paths);if(!n)return[];const t=[];for(const[e,o]of Object.entries(n)){const n=J(o);if(n)for(const o of z){const r=J(n[o]);if(!r)continue;const a=K(r.operationId),i=K(r.summary),s=K(r.description),c=V(r.tags)?.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>e.length>0)??[],d=i??a??`${o.toUpperCase()} ${e}`,u=a??`${o}:${e}`,p=`/paths/${encodeURIComponent(e)}/${o}`;t.push({id:u,path:e,method:o,name:d,summary:i,description:s,operationId:a,deprecated:!0===Q(r.deprecated),tags:c,pointer:p,raw:r})}}return t}(r),i=function(e){const n=V(e.tags);if(!n)return[];const t=[];for(const e of n){const n=J(e),o=K(n?.name);o&&n&&t.push({name:o,displayName:ee(n)??o,description:K(n.description),parent:K(n.parent),order:Z(n)})}return t}(r);let s;s=function(e){return e.some(e=>void 0!==e.parent)}(i)?oe(i,a,t,o):function(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}(r)?ie(r,i,a,t):function(e,n,t){const o=new Map,r=new Map;for(let n=0;n<e.length;n+=1)r.set(e[n].name,n);for(const e of n){if(Y(e.raw,t.showInternal))continue;const n=e.tags.length>0?e.tags:["Other"];for(const t of n){const n=o.get(t)??[];n.push(e),o.set(t,n)}}const a=new Map;for(const n of e)a.set(n.name,n.displayName);const i=[];for(const[e,n]of o){const o=n.map(n=>te(n,t,"tag",e));i.push({id:`tag:${e}`,name:a.get(e)??e,order:"Other"===e?Number.MAX_SAFE_INTEGER:r.get(e),children:f(o),metadata:{source:"tag",kind:"tag"}})}return f(i)}(i,a,t);const c=function(e,n){if(!n.showComponents)return;const t=J(e.components),o=J(t?.schemas);if(!o)return;const r=[];for(const[e,t]of Object.entries(o)){const o=J(t);o&&!Y(o,n.showInternal)&&r.push({id:`schema:${e}`,name:e,order:Z(o),metadata:{description:K(o.description),pointer:`/components/schemas/${encodeURIComponent(e)}`,source:"tag",kind:"schema"}})}return 0!==r.length?{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(r),metadata:{source:"tag",kind:"component"}}:void 0}(r,t);return{root:{id:"root",name:"API Documentation",children:f(se([...s,...c?[c]:[]])),metadata:{kind:"root"}},warnings:o}}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{buildDocTree as o,buildOpenApiTree as r,buildSchemaTree as m,findSchemaNodeByPath as p,formatSchemaType as t}from"./chunk-YSSQNJPQ.js";import"./chunk-NHPRTISE.js";import{countNodes as c,filterTree as h,findNode as i,findPath as j,flattenTree as k,getBranchIds as n,getExpandableIds as s,getLeaves as u,getMaxDepth as Q,insertChild as S,isTreeNode as f,moveNode as N,removeNode as P,reorderNode as T,sortNodes as e,sortTree as x,updateNode as D}from"./chunk-5KF7QUTD.js";export{o as buildDocTree,r as buildOpenApiTree,m as buildSchemaTree,c as countNodes,h as filterTree,i as findNode,j as findPath,p as findSchemaNodeByPath,k as flattenTree,t as formatSchemaType,n as getBranchIds,s as getExpandableIds,u as getLeaves,Q as getMaxDepth,S as insertChild,f as isTreeNode,N as moveNode,P as removeNode,T as reorderNode,e as sortNodes,x as sortTree,D as updateNode};
1
+ import{buildDocTree as o,buildOpenApiTree as r,buildSchemaTree as m,findSchemaNodeByPath as p,formatSchemaType as t}from"./chunk-WY6V7DT2.js";import"./chunk-NHPRTISE.js";import{countNodes as c,filterTree as h,findNode as i,findPath as j,flattenTree as k,getBranchIds as n,getExpandableIds as s,getLeaves as u,getMaxDepth as T,insertChild as f,isTreeNode as D,moveNode as e,removeNode as x,reorderNode as E,sortNodes as F,sortTree as H,updateNode as I}from"./chunk-5KF7QUTD.js";export{o as buildDocTree,r as buildOpenApiTree,m as buildSchemaTree,c as countNodes,h as filterTree,i as findNode,j as findPath,p as findSchemaNodeByPath,k as flattenTree,t as formatSchemaType,n as getBranchIds,s as getExpandableIds,u as getLeaves,T as getMaxDepth,f as insertChild,D as isTreeNode,e as moveNode,x as removeNode,E as reorderNode,F as sortNodes,H as sortTree,I as updateNode};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerduck/tree",
3
- "version": "0.7.3",
3
+ "version": "0.7.4",
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",