@powerduck/tree 0.7.10 → 0.7.14

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 F=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var de=Object.getOwnPropertyNames;var ce=Object.prototype.hasOwnProperty;var ue=(e,t)=>{for(var o in t)F(e,o,{get:t[o],enumerable:!0})},pe=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of de(t))!ce.call(e,n)&&n!==o&&F(e,n,{get:()=>t[n],enumerable:!(r=ae(t,n))||r.enumerable});return e};var me=e=>pe(F({},"__esModule",{value:!0}),e);var Xe={};ue(Xe,{buildDocTree:()=>ie,buildOpenApiTree:()=>z,buildSchemaTree:()=>ee,findSchemaNodeByPath:()=>ne,formatSchemaType:()=>te});module.exports=me(Xe);function*fe(e,t=1/0){let o=new Set,r=[];for(let n=e.length-1;n>=0;n--)r.push({node:e[n],depth:1});for(;r.length;){let n=r.pop();if(o.has(n.node)||n.depth>t)continue;o.add(n.node),yield n;let c=n.node.children??[];for(let a=c.length-1;a>=0;a--)r.push({node:c[a],parent:n,depth:n.depth+1})}}var ge=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function g(e){return[...e].sort((t,o)=>{let r=(t.order??Number.MAX_SAFE_INTEGER)-(o.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(r)?0:r)||ge.compare(t.name,o.name)||t.id.localeCompare(o.id)})}function W(e){return Array.from(fe(e),({node:t,depth:o})=>({node:t,depth:o}))}function J(e,t,o){let r=new Map;for(let d of e)r.has(d.name)?o.push(`Duplicate tag "${d.name}" was ignored.`):r.set(d.name,d);let n=new Map;for(let d of r.values())d.parent&&!r.has(d.parent)&&o.push(`Tag "${d.name}" references unknown parent "${d.parent}", treating as root.`),n.set(d.name,d.parent&&r.has(d.parent)?d.parent:null);let c=new Set;for(let d of r.keys()){let u=new Set,s=d;for(;s!==null&&!c.has(s);){if(u.has(s)){o.push(`Circular tag reference detected at "${s}". Breaking cycle.`),n.set(s,null);break}u.add(s),s=n.get(s)??null}for(let p of u)c.add(p)}let a=new Map(Array.from(r,([d,u])=>[d,t(u)])),i=[];for(let[d,u]of a){let s=n.get(d);if(s==null)i.push(u);else{let p=a.get(s);(p.children??(p.children=[])).push(u)}}for(let d of a.values())d.children&&(d.children=g(d.children));return g(i)}var v=["get","put","post","delete","options","head","patch","trace"],le={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function he(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function B(e){return typeof e=="boolean"?e:void 0}function $(e){return Array.isArray(e)?e:void 0}function M(e,t){return t?!1:B(e["x-scalar-ignore"])===!0||B(e["x-internal"])===!0}function A(e){return he(e["x-order"])}function Te(e){return w(e["x-displayName"])}function Ne(e){let t=N(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let c=N(n);if(c)for(let a of v){let i=c[a];if(i==null)continue;let d=N(i);if(!d)continue;let u=w(d.operationId),s=w(d.summary),p=$(d.tags)?.filter(O=>typeof O=="string").map(O=>O.trim()).filter(O=>O.length>0)??[],f=s??u??`${a.toUpperCase()} ${r}`,m=u??`${a}:${r}`,T=`/paths/${encodeURIComponent(r)}/${a}`;o.push({id:m,path:r,method:a,name:f,summary:s,operationId:u,deprecated:B(d.deprecated)===!0,tags:p,pointer:T,raw:d})}}return o}function ye(e){let t=$(e.tags);if(!t)return[];let o=[];for(let r of t){let n=N(r),c=w(n?.name);!c||!n||o.push({name:c,displayName:Te(n)??c,description:w(n.description),parent:w(n.parent),order:A(n),raw:n})}return o}function Oe(e){return e.some(t=>t.parent!==void 0)}function be(e,t,o,r){let n=new Map;for(let s of t){if(M(s.raw,o.showInternal))continue;let p=s.tags.length>0?s.tags:["Other"];for(let f of p){let m=n.get(f)??[];m.push(s),n.set(f,m)}}let c=s=>{let f=(n.get(s.name)??[]).map(m=>({id:`op:${s.name}:${m.id}`,name:m.name,order:A(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${s.name}`,name:s.displayName,order:s.order,children:g(f),metadata:{source:"oas32-parent",kind:"tag"}}},a=new Set(e.map(s=>s.name)),i=[...e];for(let s of n.keys())s!=="Other"&&!a.has(s)&&i.push({name:s,displayName:s,raw:{}});let d=J(i,c,r),u=n.get("Other")??[];if(u.length>0&&!e.some(s=>s.name==="Other")){let s=u.map(p=>({id:`op:Other:${p.id}`,name:p.name,order:A(p.raw),metadata:{method:p.method,path:p.path,operationId:p.operationId,deprecated:p.deprecated,summary:p.summary,pointer:p.pointer,source:"fallback",kind:"operation"}}));d.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(s),metadata:{source:"fallback",kind:"tag"}})}return g(d)}function we(e){let t=$(e["x-tagGroups"]);if(!t)return[];let o=(r,n)=>{let c=N(r),a=w(c?.name),i=$(c?.tags)?.filter(u=>typeof u=="string").map(u=>u.trim()).filter(u=>u.length>0)??[];if(!a)return null;let d=$(c?.groups)?.map((u,s)=>o(u,s)).filter(u=>u!==null)??[];return{name:a,tags:i,groups:d.length>0?d:void 0,order:A(c??{})??n}};return t.map((r,n)=>o(r,n)).filter(r=>r!==null)}function ke(e,t,o,r){let n=new Map;for(let u of t)n.set(u.name,u.displayName);let c=new Map;for(let u of o)if(!M(u.raw,r.showInternal))for(let s of u.tags){let p=c.get(s)??[];p.push(u),c.set(s,p)}let a=u=>(c.get(u)??[]).map(p=>({id:`op:${u}:${p.id}`,name:p.name,order:A(p.raw),metadata:{method:p.method,path:p.path,operationId:p.operationId,deprecated:p.deprecated,summary:p.summary,pointer:p.pointer,source:"tag-group",kind:"operation"}})),i=u=>({id:`tag:${u}`,name:n.get(u)??u,children:g(a(u)),metadata:{source:"tag-group",kind:"tag"}}),d=u=>{let s=[];for(let p of u.tags)c.get(p)?.length&&s.push(i(p));for(let p of u.groups??[])s.push(d(p));return{id:`tag-group:${u.name}`,name:u.name,order:u.order,children:g(s),metadata:{source:"tag-group",kind:"tag-group"}}};return g(e.map(d))}function De(e,t,o){let r=new Map,n=new Map;for(let i=0;i<e.length;i+=1){let d=e[i];n.set(d.name,d.order??i)}for(let i of t){if(M(i.raw,o.showInternal))continue;let d=i.tags.length>0?i.tags:["Other"];for(let u of d){let s=r.get(u)??[];s.push(i),r.set(u,s)}}let c=new Map;for(let i of e)c.set(i.name,i.displayName);let a=[];for(let[i,d]of r){let u=d.map(s=>({id:`op:${i}:${s.id}`,name:s.name,order:A(s.raw),metadata:{method:s.method,path:s.path,operationId:s.operationId,deprecated:s.deprecated,summary:s.summary,pointer:s.pointer,source:"tag",kind:"operation"}}));a.push({id:`tag:${i}`,name:c.get(i)??i,order:i==="Other"?Number.MAX_SAFE_INTEGER:n.get(i),children:g(u),metadata:{source:"tag",kind:"tag"}})}return g(a)}function Ae(e,t){if(!t.showComponents)return;let o=N(e.components),r=N(o?.schemas);if(!r)return;let n=[];for(let[c,a]of Object.entries(r)){let i=N(a);!i||M(i,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:A(i),metadata:{pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"section",kind:"section",section:"components"}}}function Re(e,t){if(!t.showWebhooks)return;let o=N(e.webhooks);if(!o)return;let r=[];for(let[n,c]of Object.entries(o)){let a=N(c);if(a)for(let i of v){let d=a[i],u=N(d);if(!u||M(u,t.showInternal))continue;let s=w(u.operationId),p=w(u.summary),f=p??s??`${i.toUpperCase()} ${n}`;r.push({id:`webhook:${n}:${i}`,name:f,order:A(u),metadata:{method:i,path:n,operationId:s,deprecated:B(u.deprecated)===!0,summary:p,pointer:`/webhooks/${encodeURIComponent(n)}/${i}`,source:"tag",kind:"webhook"}})}}if(r.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:g(r),metadata:{source:"section",kind:"section",section:"webhooks"}}}function z(e,t={}){let o={...le,...t},r=[],n=N(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=Ne(n),a=ye(n),i;if(Oe(a))i=be(a,c,o,r);else{let f=we(n);f.length>0?i=ke(f,a,c,o):i=De(a,c,o)}let d=Re(n,o),u=Ae(n,o),p=[{id:"section:apis",name:"APIs",children:i,metadata:{kind:"section",source:"section",section:"apis"},order:0},...d?[d]:[],...u?[u]:[]];return{root:{id:"root",name:"OpenAPI",children:g(p),metadata:{kind:"root"}},warnings:r}}var V={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},U={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Y=new Set(["string","number","integer","boolean","null"]);function C(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function j(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Q(e){return typeof e=="boolean"?e:void 0}function L(e){return Array.isArray(e)?e:void 0}function Se(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(o=>typeof o=="string"))return t}function Ie(e){return e?Array.isArray(e)?e.every(t=>Y.has(t)):Y.has(e):!1}function xe(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Z(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,o=>`\\${o}`)).join(".")||"root"}function P(e,t,o,r,n,c){n.remaining--;let a=Se(t),i=j(t.format),d=j(t.description),u=Q(t.deprecated)===!0,s=xe(a),p={jsonPath:o,type:a,format:i,required:c,deprecated:u,description:d,kind:s},f=j(t.$ref);if(f){if(n.refStack.has(f))return n.warnings.push(`Circular $ref detected at ${o.join(".")}: ${f}. Breaking recursion.`),{id:S(o),name:e,metadata:{...p,kind:"ref",isLeaf:!0}};n.refStack.add(f)}let m,T=Ie(a),O=n.activeSchemas.has(t);if(O&&n.warnings.push(`Circular schema object detected at ${S(o)}.`),O||r>=n.options.maxDepth||n.remaining<=0)return f&&n.refStack.delete(f),{id:S(o),name:e,metadata:{...p,isLeaf:!0}};n.activeSchemas.add(t);let k=C(t.properties);if(k){let R=L(t.required)??[],y=new Set(R.filter(b=>typeof b=="string")),q=[];for(let[b,I]of Object.entries(k)){if(n.remaining<=0)break;let x=C(I);x&&(!n.options.showDeprecated&&Q(x.deprecated)===!0||q.push(P(b,x,[...o,"properties",b],r+1,n,y.has(b))))}m=[...m??[],...g(q)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&a==="array"){let R=C(t.items);if(R){let y=P("items",R,[...o,"items"],r+1,n,!1);m=[...m??[],y],T=!1}else p.hasItems=!1}if(n.options.expandCombinators){let R=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:y,kind:q}of R){if(n.remaining<=0)break;let b=L(t[y]);if(!b?.length)continue;n.remaining--;let I=[];for(let D=0;D<b.length&&n.remaining>0;D++){let se=b[D],H=C(se);if(!H){n.remaining--,I.push({id:S([...o,y,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...o,y,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(P(`[${D}]`,H,[...o,y,String(D)],r+1,n,!1))}let x={id:S([...o,y]),name:y,children:g(I),metadata:{jsonPath:[...o,y],kind:q}};m=[...m??[],x],T=!1}}return L(t.enum)?.length&&!m?.length&&(p.kind="enum",T=!0),f&&n.refStack.delete(f),n.activeSchemas.delete(t),{id:S(o),name:e,order:Object.prototype.hasOwnProperty.call(V,e)?V[e]:void 0,metadata:{...p,isLeaf:T},children:m}}function ee(e,t={}){let o={...U,...t};o.maxDepth=Number.isFinite(o.maxDepth)?Math.min(128,Math.max(0,Math.trunc(o.maxDepth))):U.maxDepth,o.maxNodes=Number.isFinite(o.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(o.maxNodes))):U.maxNodes;let r=[],n=C(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let c={options:o,warnings:r,refStack:new Set,activeSchemas:new Set,remaining:o.maxNodes},a=P("root",n,[],0,c,!0);return c.remaining<=0&&r.push(`Schema node limit (${o.maxNodes}) reached; remaining branches were omitted.`),{root:a,warnings:r}}function ne(e,t){if(t.length===0)return e;let o=JSON.stringify(t),r=[e],n=new Set;for(let c=0;c<r.length;c++){let a=r[c];if(!a||n.has(a))continue;if(n.add(a),JSON.stringify(a.metadata?.jsonPath)===o)return a;for(let d of a.children??[])r.push(d)}}function te(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Z(e.type)} (${e.format})`:Z(e.type)}var $e=["get","put","post","delete","options","head","patch","trace"],Me={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function E(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function _(e,t){return t?!1:E(e["x-scalar-ignore"])===!0||E(e["x-internal"])===!0}function X(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function Ce(e){return h(e["x-displayName"])}function Ee(e,t){let o=[];for(let r of e){let n=l(r);if(!n)continue;let c=h(n.name),a=h(n.in);if(!c||!a)continue;let i=`${a}:${c}`;o.push({id:`${t}/parameters/${encodeURIComponent(i)}`,name:c,metadata:{paramIn:a,required:E(n.required)===!0,description:h(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return g(o)}function Ge(e,t){let o=[];for(let[r,n]of Object.entries(e)){let c=l(n);if(!c)continue;let a=h(c.description),i=l(c.content),d=[];if(i)for(let[u]of Object.entries(i))d.push({id:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,name:u,metadata:{contentType:u,pointer:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,kind:"content"}});o.push({id:`${t}/responses/${encodeURIComponent(r)}`,name:r,metadata:{statusCode:r,description:a,pointer:`${t}/responses/${encodeURIComponent(r)}`,kind:"response"},children:d.length>0?d:void 0})}return g(o)}function qe(e,t){let o=[],r=K(e.parameters);if(r?.length){let a=Ee(r,t);a.length>0&&o.push({id:`${t}/parameters`,name:"Parameters",children:a,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=l(e.requestBody);if(n){let a=l(n.content),i=[];if(a)for(let[d]of Object.entries(a))i.push({id:`${t}/requestBody/content/${encodeURIComponent(d)}`,name:d,metadata:{contentType:d,pointer:`${t}/requestBody/content/${encodeURIComponent(d)}`,kind:"content"}});o.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:h(n.description),required:E(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:i.length>0?i:void 0})}let c=l(e.responses);if(c){let a=Ge(c,t);a.length>0&&o.push({id:`${t}/responses`,name:"Responses",children:a,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return o}function Je(e){let t=l(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let c=l(n);if(c)for(let a of $e){let i=c[a],d=l(i);if(!d)continue;let u=h(d.operationId),s=h(d.summary),p=h(d.description),f=K(d.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],m=s??u??`${a.toUpperCase()} ${r}`,T=u??`${a}:${r}`,O=`/paths/${encodeURIComponent(r)}/${a}`;o.push({id:T,path:r,method:a,name:m,summary:s,description:p,operationId:u,deprecated:E(d.deprecated)===!0,tags:f,pointer:O,raw:d})}}return o}function Be(e){let t=K(e.tags);if(!t)return[];let o=[];for(let r of t){let n=l(r),c=h(n?.name);!c||!n||o.push({name:c,displayName:Ce(n)??c,description:h(n.description),parent:h(n.parent),order:X(n)})}return o}function Pe(e){return e.some(t=>t.parent!==void 0)}function G(e,t,o,r){let n=t.expandOperationDetails?qe(e.raw,e.pointer):void 0;return{id:`op:${r}:${e.id}`,name:e.name,order:X(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:o,kind:"operation"},children:n&&n.length>0?n:void 0}}function _e(e,t,o,r){let n=new Map;for(let s of t){if(_(s.raw,o.showInternal))continue;let p=s.tags.length>0?s.tags:["Other"];for(let f of p){let m=n.get(f)??[];m.push(s),n.set(f,m)}}let c=s=>{let f=(n.get(s.name)??[]).map(m=>G(m,o,"oas32-parent",s.name));return{id:`tag:${s.name}`,name:s.displayName,order:s.order,children:g(f),metadata:{description:s.description,source:"oas32-parent",kind:"tag"}}},a=new Set(e.map(s=>s.name)),i=[...e];for(let s of n.keys())s!=="Other"&&!a.has(s)&&i.push({name:s,displayName:s});let d=J(i,c,r),u=n.get("Other")??[];if(u.length>0&&!e.some(s=>s.name==="Other")){let s=u.map(p=>G(p,o,"fallback","Other"));d.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(s),metadata:{source:"fallback",kind:"tag"}})}return g(d)}function Fe(e,t,o){let r=new Map,n=new Map;for(let i=0;i<e.length;i+=1)n.set(e[i].name,i);for(let i of t){if(_(i.raw,o.showInternal))continue;let d=i.tags.length>0?i.tags:["Other"];for(let u of d){let s=r.get(u)??[];s.push(i),r.set(u,s)}}let c=new Map;for(let i of e)c.set(i.name,i.displayName);let a=[];for(let[i,d]of r){let u=d.map(s=>G(s,o,"tag",i));a.push({id:`tag:${i}`,name:c.get(i)??i,order:i==="Other"?Number.MAX_SAFE_INTEGER:n.get(i),children:g(u),metadata:{source:"tag",kind:"tag"}})}return g(a)}function Ue(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function re(e,t,o=0,r={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(o>=128||r.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];r.active.add(e);let n=[];for(let c of e){if(r.remaining<=0){r.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),r.warned=!0;break}let a=l(c);if(!a||typeof a.name!="string")continue;r.remaining--;let i={name:a.name};Array.isArray(a.tags)&&(i.tags=a.tags.filter(d=>typeof d=="string")),Array.isArray(a.groups)&&(i.groups=re(a.groups,t,o+1,r)),n.push(i)}return r.active.delete(e),n}function oe(e,t,o,r,n,c=0){let a=[];if(e.tags)for(let i of e.tags){let d=t.get(i);if(!d||d.length===0)continue;let u=d.map(s=>G(s,n,"tag-group",i));a.push({id:`tag:${i}`,name:o.get(i)??i,order:r.get(i),children:g(u),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let i of e.groups)a.push(oe(i,t,o,r,n,c+1));return{id:`tag-group:${e.name}`,name:e.name,order:c*1e3,children:g(a),metadata:{source:"tag-group",kind:"tag-group"}}}function je(e,t,o,r,n){let c=new Map,a=new Map,i=new Map;for(let p=0;p<t.length;p+=1)a.set(t[p].name,p),i.set(t[p].name,t[p].displayName);for(let p of o){if(_(p.raw,r.showInternal))continue;let f=p.tags.length>0?p.tags:["Other"];for(let m of f){let T=c.get(m)??[];T.push(p),c.set(m,T)}}let u=re(e["x-tagGroups"],n).map(p=>oe(p,c,i,a,r)),s=c.get("Other");if(s&&s.length>0){let p=s.map(f=>G(f,r,"fallback","Other"));u.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(p),metadata:{source:"fallback",kind:"tag"}})}return g(u)}function Le(e,t){if(!t.showComponents)return;let o=l(e.components),r=l(o?.schemas);if(!r)return;let n=[];for(let[c,a]of Object.entries(r)){let i=l(a);!i||_(i,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:X(i),metadata:{description:h(i.description),pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"tag",kind:"component"}}}function Ke(e){let t=new Map,o=W(e);for(let r=o.length-1;r>=0;r--){let n=o[r].node,c=n.children?.map(i=>t.get(i)).filter(Boolean),a=(n.metadata?.kind==="operation"?1:0)+(c?.reduce((i,d)=>i+(d.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:c,metadata:{...n.metadata,operationCount:a}})}return e.map(r=>t.get(r))}function ie(e,t={}){let o={...Me,...t},r=[],n=l(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=Je(n),a=Be(n),i;Pe(a)?i=_e(a,c,o,r):Ue(n)?i=je(n,a,c,o,r):i=Fe(a,c,o);let d=Le(n,o),u=Ke([...i,...d?[d]:[]]);return{root:{id:"root",name:"API Documentation",children:g(u),metadata:{kind:"root"}},warnings:r}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,findSchemaNodeByPath,formatSchemaType});
1
+ "use strict";var F=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var pe=(e,t)=>{for(var o in t)F(e,o,{get:t[o],enumerable:!0})},me=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ce(t))!ue.call(e,n)&&n!==o&&F(e,n,{get:()=>t[n],enumerable:!(r=de(t,n))||r.enumerable});return e};var fe=e=>me(F({},"__esModule",{value:!0}),e);var We={};pe(We,{buildDocTree:()=>se,buildOpenApiTree:()=>V,buildSchemaTree:()=>ne,findSchemaNodeByPath:()=>te,formatSchemaType:()=>re});module.exports=fe(We);function*ge(e,t=1/0){let o=new Set,r=[];for(let n=e.length-1;n>=0;n--)r.push({node:e[n],depth:1});for(;r.length;){let n=r.pop();if(o.has(n.node)||n.depth>t)continue;o.add(n.node),yield n;let c=n.node.children??[];for(let a=c.length-1;a>=0;a--)r.push({node:c[a],parent:n,depth:n.depth+1})}}var le=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function g(e){return[...e].sort((t,o)=>{let r=(t.order??Number.MAX_SAFE_INTEGER)-(o.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(r)?0:r)||le.compare(t.name,o.name)||t.id.localeCompare(o.id)})}function v(e){return Array.from(ge(e),({node:t,depth:o})=>({node:t,depth:o}))}function J(e,t,o){let r=new Map;for(let s of e)r.has(s.name)?o.push(`Duplicate tag "${s.name}" was ignored.`):r.set(s.name,s);let n=new Map;for(let s of r.values())s.parent&&!r.has(s.parent)&&o.push(`Tag "${s.name}" references unknown parent "${s.parent}", treating as root.`),n.set(s.name,s.parent&&r.has(s.parent)?s.parent:null);let c=new Set;for(let s of r.keys()){let u=new Set,i=s;for(;i!==null&&!c.has(i);){if(u.has(i)){o.push(`Circular tag reference detected at "${i}". Breaking cycle.`),n.set(i,null);break}u.add(i),i=n.get(i)??null}for(let p of u)c.add(p)}let a=new Map(Array.from(r,([s,u])=>[s,t(u)])),d=[];for(let[s,u]of a){let i=n.get(s);if(i==null)d.push(u);else{let p=a.get(i);(p.children??(p.children=[])).push(u)}}for(let s of a.values())s.children&&(s.children=g(s.children));return g(d)}var z=["get","put","post","delete","options","head","patch","trace"],he={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Te(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function P(e){return typeof e=="boolean"?e:void 0}function $(e){return Array.isArray(e)?e:void 0}function C(e,t){return t?!1:P(e["x-scalar-ignore"])===!0||P(e["x-internal"])===!0}function A(e){return Te(e["x-order"])}function Ne(e){return w(e["x-displayName"])}function ye(e){let t=N(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let c=N(n);if(c)for(let a of z){let d=c[a];if(d==null)continue;let s=N(d);if(!s)continue;let u=w(s.operationId),i=w(s.summary),p=$(s.tags)?.filter(O=>typeof O=="string").map(O=>O.trim()).filter(O=>O.length>0)??[],m=i??u??`${a.toUpperCase()} ${r}`,f=u??`${a}:${r}`,T=`/paths/${encodeURIComponent(r)}/${a}`;o.push({id:f,path:r,method:a,name:m,summary:i,operationId:u,deprecated:P(s.deprecated)===!0,tags:p,pointer:T,raw:s})}}return o}function Oe(e){let t=$(e.tags);if(!t)return[];let o=[];for(let r of t){let n=N(r),c=w(n?.name);!c||!n||o.push({name:c,displayName:Ne(n)??c,description:w(n.description),parent:w(n.parent),order:A(n),raw:n})}return o}function be(e){return e.some(t=>t.parent!==void 0)}function U(e){return{id:`op:root:${e.id}`,name:e.name,order:A(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function we(e,t,o,r){let n=new Map,c=[];for(let i of t)if(!C(i.raw,o.showInternal)){if(i.tags.length===0){c.push(i);continue}for(let p of i.tags){let m=n.get(p)??[];m.push(i),n.set(p,m)}}let a=i=>{let m=(n.get(i.name)??[]).map(f=>({id:`op:${i.name}:${f.id}`,name:f.name,order:A(f.raw),metadata:{method:f.method,path:f.path,operationId:f.operationId,deprecated:f.deprecated,summary:f.summary,pointer:f.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${i.name}`,name:i.displayName,order:i.order,children:g(m),metadata:{source:"oas32-parent",kind:"tag"}}},d=new Set(e.map(i=>i.name)),s=[...e];for(let i of n.keys())d.has(i)||s.push({name:i,displayName:i,raw:{}});let u=J(s,a,r);return g([...u,...c.map(U)])}function ke(e){let t=$(e["x-tagGroups"]);if(!t)return[];let o=(r,n)=>{let c=N(r),a=w(c?.name),d=$(c?.tags)?.filter(u=>typeof u=="string").map(u=>u.trim()).filter(u=>u.length>0)??[];if(!a)return null;let s=$(c?.groups)?.map((u,i)=>o(u,i)).filter(u=>u!==null)??[];return{name:a,tags:d,groups:s.length>0?s:void 0,order:A(c??{})??n}};return t.map((r,n)=>o(r,n)).filter(r=>r!==null)}function De(e,t,o,r){let n=new Map;for(let i of t)n.set(i.name,i.displayName);let c=new Map,a=[];for(let i of o)if(!C(i.raw,r.showInternal)){if(i.tags.length===0){a.push(i);continue}for(let p of i.tags){let m=c.get(p)??[];m.push(i),c.set(p,m)}}let d=i=>(c.get(i)??[]).map(m=>({id:`op:${i}:${m.id}`,name:m.name,order:A(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),s=i=>({id:`tag:${i}`,name:n.get(i)??i,children:g(d(i)),metadata:{source:"tag-group",kind:"tag"}}),u=i=>{let p=[];for(let m of i.tags)c.get(m)?.length&&p.push(s(m));for(let m of i.groups??[])p.push(u(m));return{id:`tag-group:${i.name}`,name:i.name,order:i.order,children:g(p),metadata:{source:"tag-group",kind:"tag-group"}}};return g([...e.map(u),...a.map(U)])}function Ae(e,t,o){let r=new Map,n=[],c=new Map;for(let s=0;s<e.length;s+=1){let u=e[s];c.set(u.name,u.order??s)}for(let s of t)if(!C(s.raw,o.showInternal)){if(s.tags.length===0){n.push(s);continue}for(let u of s.tags){let i=r.get(u)??[];i.push(s),r.set(u,i)}}let a=new Map;for(let s of e)a.set(s.name,s.displayName);let d=[];for(let[s,u]of r){let i=u.map(p=>({id:`op:${s}:${p.id}`,name:p.name,order:A(p.raw),metadata:{method:p.method,path:p.path,operationId:p.operationId,deprecated:p.deprecated,summary:p.summary,pointer:p.pointer,source:"tag",kind:"operation"}}));d.push({id:`tag:${s}`,name:a.get(s)??s,order:c.get(s),children:g(i),metadata:{source:"tag",kind:"tag"}})}return g([...d,...n.map(U)])}function Re(e,t){if(!t.showComponents)return;let o=N(e.components),r=N(o?.schemas);if(!r)return;let n=[];for(let[c,a]of Object.entries(r)){let d=N(a);!d||C(d,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:A(d),metadata:{pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"section",kind:"section",section:"components"}}}function Se(e,t){if(!t.showWebhooks)return;let o=N(e.webhooks);if(!o)return;let r=[];for(let[n,c]of Object.entries(o)){let a=N(c);if(a)for(let d of z){let s=a[d],u=N(s);if(!u||C(u,t.showInternal))continue;let i=w(u.operationId),p=w(u.summary),m=p??i??`${d.toUpperCase()} ${n}`;r.push({id:`webhook:${n}:${d}`,name:m,order:A(u),metadata:{method:d,path:n,operationId:i,deprecated:P(u.deprecated)===!0,summary:p,pointer:`/webhooks/${encodeURIComponent(n)}/${d}`,source:"tag",kind:"webhook"}})}}if(r.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:g(r),metadata:{source:"section",kind:"section",section:"webhooks"}}}function V(e,t={}){let o={...he,...t},r=[],n=N(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=ye(n),a=Oe(n),d;if(be(a))d=we(a,c,o,r);else{let m=ke(n);m.length>0?d=De(m,a,c,o):d=Ae(a,c,o)}let s=Se(n,o),u=Re(n,o),p=[{id:"section:apis",name:"APIs",children:d,metadata:{kind:"section",source:"section",section:"apis"},order:0},...s?[s]:[],...u?[u]:[]];return{root:{id:"root",name:"OpenAPI",children:g(p),metadata:{kind:"root"}},warnings:r}}var Y={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},j={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Q=new Set(["string","number","integer","boolean","null"]);function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function L(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Z(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function Ie(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(o=>typeof o=="string"))return t}function xe(e){return e?Array.isArray(e)?e.every(t=>Q.has(t)):Q.has(e):!1}function $e(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function ee(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,o=>`\\${o}`)).join(".")||"root"}function B(e,t,o,r,n,c){n.remaining--;let a=Ie(t),d=L(t.format),s=L(t.description),u=Z(t.deprecated)===!0,i=$e(a),p={jsonPath:o,type:a,format:d,required:c,deprecated:u,description:s,kind:i},m=L(t.$ref);if(m){if(n.refStack.has(m))return n.warnings.push(`Circular $ref detected at ${o.join(".")}: ${m}. Breaking recursion.`),{id:S(o),name:e,metadata:{...p,kind:"ref",isLeaf:!0}};n.refStack.add(m)}let f,T=xe(a),O=n.activeSchemas.has(t);if(O&&n.warnings.push(`Circular schema object detected at ${S(o)}.`),O||r>=n.options.maxDepth||n.remaining<=0)return m&&n.refStack.delete(m),{id:S(o),name:e,metadata:{...p,isLeaf:!0}};n.activeSchemas.add(t);let k=M(t.properties);if(k){let R=K(t.required)??[],y=new Set(R.filter(b=>typeof b=="string")),q=[];for(let[b,I]of Object.entries(k)){if(n.remaining<=0)break;let x=M(I);x&&(!n.options.showDeprecated&&Z(x.deprecated)===!0||q.push(B(b,x,[...o,"properties",b],r+1,n,y.has(b))))}f=[...f??[],...g(q)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&a==="array"){let R=M(t.items);if(R){let y=B("items",R,[...o,"items"],r+1,n,!1);f=[...f??[],y],T=!1}else p.hasItems=!1}if(n.options.expandCombinators){let R=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:y,kind:q}of R){if(n.remaining<=0)break;let b=K(t[y]);if(!b?.length)continue;n.remaining--;let I=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ae=b[D],X=M(ae);if(!X){n.remaining--,I.push({id:S([...o,y,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...o,y,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(B(`[${D}]`,X,[...o,y,String(D)],r+1,n,!1))}let x={id:S([...o,y]),name:y,children:g(I),metadata:{jsonPath:[...o,y],kind:q}};f=[...f??[],x],T=!1}}return K(t.enum)?.length&&!f?.length&&(p.kind="enum",T=!0),m&&n.refStack.delete(m),n.activeSchemas.delete(t),{id:S(o),name:e,order:Object.prototype.hasOwnProperty.call(Y,e)?Y[e]:void 0,metadata:{...p,isLeaf:T},children:f}}function ne(e,t={}){let o={...j,...t};o.maxDepth=Number.isFinite(o.maxDepth)?Math.min(128,Math.max(0,Math.trunc(o.maxDepth))):j.maxDepth,o.maxNodes=Number.isFinite(o.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(o.maxNodes))):j.maxNodes;let r=[],n=M(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let c={options:o,warnings:r,refStack:new Set,activeSchemas:new Set,remaining:o.maxNodes},a=B("root",n,[],0,c,!0);return c.remaining<=0&&r.push(`Schema node limit (${o.maxNodes}) reached; remaining branches were omitted.`),{root:a,warnings:r}}function te(e,t){if(t.length===0)return e;let o=JSON.stringify(t),r=[e],n=new Set;for(let c=0;c<r.length;c++){let a=r[c];if(!a||n.has(a))continue;if(n.add(a),JSON.stringify(a.metadata?.jsonPath)===o)return a;for(let s of a.children??[])r.push(s)}}function re(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${ee(e.type)} (${e.format})`:ee(e.type)}var Ce=["get","put","post","delete","options","head","patch","trace"],Me={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function E(e){return typeof e=="boolean"?e:void 0}function H(e){return Array.isArray(e)?e:void 0}function _(e,t){return t?!1:E(e["x-scalar-ignore"])===!0||E(e["x-internal"])===!0}function W(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function Ee(e){return h(e["x-displayName"])}function Ge(e,t){let o=[];for(let r of e){let n=l(r);if(!n)continue;let c=h(n.name),a=h(n.in);if(!c||!a)continue;let d=`${a}:${c}`;o.push({id:`${t}/parameters/${encodeURIComponent(d)}`,name:c,metadata:{paramIn:a,required:E(n.required)===!0,description:h(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return g(o)}function qe(e,t){let o=[];for(let[r,n]of Object.entries(e)){let c=l(n);if(!c)continue;let a=h(c.description),d=l(c.content),s=[];if(d)for(let[u]of Object.entries(d))s.push({id:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,name:u,metadata:{contentType:u,pointer:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,kind:"content"}});o.push({id:`${t}/responses/${encodeURIComponent(r)}`,name:r,metadata:{statusCode:r,description:a,pointer:`${t}/responses/${encodeURIComponent(r)}`,kind:"response"},children:s.length>0?s:void 0})}return g(o)}function Je(e,t){let o=[],r=H(e.parameters);if(r?.length){let a=Ge(r,t);a.length>0&&o.push({id:`${t}/parameters`,name:"Parameters",children:a,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=l(e.requestBody);if(n){let a=l(n.content),d=[];if(a)for(let[s]of Object.entries(a))d.push({id:`${t}/requestBody/content/${encodeURIComponent(s)}`,name:s,metadata:{contentType:s,pointer:`${t}/requestBody/content/${encodeURIComponent(s)}`,kind:"content"}});o.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:h(n.description),required:E(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:d.length>0?d:void 0})}let c=l(e.responses);if(c){let a=qe(c,t);a.length>0&&o.push({id:`${t}/responses`,name:"Responses",children:a,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return o}function Pe(e){let t=l(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let c=l(n);if(c)for(let a of Ce){let d=c[a],s=l(d);if(!s)continue;let u=h(s.operationId),i=h(s.summary),p=h(s.description),m=H(s.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],f=i??u??`${a.toUpperCase()} ${r}`,T=u??`${a}:${r}`,O=`/paths/${encodeURIComponent(r)}/${a}`;o.push({id:T,path:r,method:a,name:f,summary:i,description:p,operationId:u,deprecated:E(s.deprecated)===!0,tags:m,pointer:O,raw:s})}}return o}function Be(e){let t=H(e.tags);if(!t)return[];let o=[];for(let r of t){let n=l(r),c=h(n?.name);!c||!n||o.push({name:c,displayName:Ee(n)??c,description:h(n.description),parent:h(n.parent),order:W(n)})}return o}function _e(e){return e.some(t=>t.parent!==void 0)}function G(e,t,o,r){let n=t.expandOperationDetails?Je(e.raw,e.pointer):void 0;return{id:`op:${r}:${e.id}`,name:e.name,order:W(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:o,kind:"operation"},children:n&&n.length>0?n:void 0}}function Fe(e,t,o,r){let n=new Map;for(let i of t){if(_(i.raw,o.showInternal))continue;let p=i.tags.length>0?i.tags:["Other"];for(let m of p){let f=n.get(m)??[];f.push(i),n.set(m,f)}}let c=i=>{let m=(n.get(i.name)??[]).map(f=>G(f,o,"oas32-parent",i.name));return{id:`tag:${i.name}`,name:i.displayName,order:i.order,children:g(m),metadata:{description:i.description,source:"oas32-parent",kind:"tag"}}},a=new Set(e.map(i=>i.name)),d=[...e];for(let i of n.keys())i!=="Other"&&!a.has(i)&&d.push({name:i,displayName:i});let s=J(d,c,r),u=n.get("Other")??[];if(u.length>0&&!e.some(i=>i.name==="Other")){let i=u.map(p=>G(p,o,"fallback","Other"));s.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(i),metadata:{source:"fallback",kind:"tag"}})}return g(s)}function Ue(e,t,o){let r=new Map,n=new Map;for(let d=0;d<e.length;d+=1)n.set(e[d].name,d);for(let d of t){if(_(d.raw,o.showInternal))continue;let s=d.tags.length>0?d.tags:["Other"];for(let u of s){let i=r.get(u)??[];i.push(d),r.set(u,i)}}let c=new Map;for(let d of e)c.set(d.name,d.displayName);let a=[];for(let[d,s]of r){let u=s.map(i=>G(i,o,"tag",d));a.push({id:`tag:${d}`,name:c.get(d)??d,order:d==="Other"?Number.MAX_SAFE_INTEGER:n.get(d),children:g(u),metadata:{source:"tag",kind:"tag"}})}return g(a)}function je(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function oe(e,t,o=0,r={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(o>=128||r.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];r.active.add(e);let n=[];for(let c of e){if(r.remaining<=0){r.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),r.warned=!0;break}let a=l(c);if(!a||typeof a.name!="string")continue;r.remaining--;let d={name:a.name};Array.isArray(a.tags)&&(d.tags=a.tags.filter(s=>typeof s=="string")),Array.isArray(a.groups)&&(d.groups=oe(a.groups,t,o+1,r)),n.push(d)}return r.active.delete(e),n}function ie(e,t,o,r,n,c=0){let a=[];if(e.tags)for(let d of e.tags){let s=t.get(d);if(!s||s.length===0)continue;let u=s.map(i=>G(i,n,"tag-group",d));a.push({id:`tag:${d}`,name:o.get(d)??d,order:r.get(d),children:g(u),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let d of e.groups)a.push(ie(d,t,o,r,n,c+1));return{id:`tag-group:${e.name}`,name:e.name,order:c*1e3,children:g(a),metadata:{source:"tag-group",kind:"tag-group"}}}function Le(e,t,o,r,n){let c=new Map,a=new Map,d=new Map;for(let p=0;p<t.length;p+=1)a.set(t[p].name,p),d.set(t[p].name,t[p].displayName);for(let p of o){if(_(p.raw,r.showInternal))continue;let m=p.tags.length>0?p.tags:["Other"];for(let f of m){let T=c.get(f)??[];T.push(p),c.set(f,T)}}let u=oe(e["x-tagGroups"],n).map(p=>ie(p,c,d,a,r)),i=c.get("Other");if(i&&i.length>0){let p=i.map(m=>G(m,r,"fallback","Other"));u.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(p),metadata:{source:"fallback",kind:"tag"}})}return g(u)}function Ke(e,t){if(!t.showComponents)return;let o=l(e.components),r=l(o?.schemas);if(!r)return;let n=[];for(let[c,a]of Object.entries(r)){let d=l(a);!d||_(d,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:W(d),metadata:{description:h(d.description),pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"tag",kind:"component"}}}function He(e){let t=new Map,o=v(e);for(let r=o.length-1;r>=0;r--){let n=o[r].node,c=n.children?.map(d=>t.get(d)).filter(Boolean),a=(n.metadata?.kind==="operation"?1:0)+(c?.reduce((d,s)=>d+(s.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:c,metadata:{...n.metadata,operationCount:a}})}return e.map(r=>t.get(r))}function se(e,t={}){let o={...Me,...t},r=[],n=l(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=Pe(n),a=Be(n),d;_e(a)?d=Fe(a,c,o,r):je(n)?d=Le(n,a,c,o,r):d=Ue(a,c,o);let s=Ke(n,o),u=He([...d,...s?[s]:[]]);return{root:{id:"root",name:"API Documentation",children:g(u),metadata:{kind:"root"}},warnings:r}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,findSchemaNodeByPath,formatSchemaType});
@@ -1 +1 @@
1
- import{a,b,c,d,e}from"../chunk-UK2AZ4W7.js";import"../chunk-AHHDXXHL.js";export{e as buildDocTree,a as buildOpenApiTree,b as buildSchemaTree,c as findSchemaNodeByPath,d as formatSchemaType};
1
+ import{a,b,c,d,e}from"../chunk-KPRGJSJS.js";import"../chunk-AHHDXXHL.js";export{e as buildDocTree,a as buildOpenApiTree,b as buildSchemaTree,c as findSchemaNodeByPath,d as formatSchemaType};
@@ -0,0 +1 @@
1
+ import{g as f,l as X}from"./chunk-AHHDXXHL.js";function P(e,t,a){let o=new Map;for(let i of e)o.has(i.name)?a.push(`Duplicate tag "${i.name}" was ignored.`):o.set(i.name,i);let n=new Map;for(let i of o.values())i.parent&&!o.has(i.parent)&&a.push(`Tag "${i.name}" references unknown parent "${i.parent}", treating as root.`),n.set(i.name,i.parent&&o.has(i.parent)?i.parent:null);let c=new Set;for(let i of o.keys()){let p=new Set,r=i;for(;r!==null&&!c.has(r);){if(p.has(r)){a.push(`Circular tag reference detected at "${r}". Breaking cycle.`),n.set(r,null);break}p.add(r),r=n.get(r)??null}for(let u of p)c.add(u)}let d=new Map(Array.from(o,([i,p])=>[i,t(p)])),s=[];for(let[i,p]of d){let r=n.get(i);if(r==null)s.push(p);else{let u=d.get(r);(u.children??(u.children=[])).push(p)}}for(let i of d.values())i.children&&(i.children=f(i.children));return f(s)}var z=["get","put","post","delete","options","head","patch","trace"],te={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function O(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function oe(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function B(e){return typeof e=="boolean"?e:void 0}function C(e){return Array.isArray(e)?e:void 0}function M(e,t){return t?!1:B(e["x-scalar-ignore"])===!0||B(e["x-internal"])===!0}function R(e){return oe(e["x-order"])}function re(e){return w(e["x-displayName"])}function ae(e){let t=O(e.paths);if(!t)return[];let a=[];for(let[o,n]of Object.entries(t)){let c=O(n);if(c)for(let d of z){let s=c[d];if(s==null)continue;let i=O(s);if(!i)continue;let p=w(i.operationId),r=w(i.summary),u=C(i.tags)?.filter(y=>typeof y=="string").map(y=>y.trim()).filter(y=>y.length>0)??[],m=r??p??`${d.toUpperCase()} ${o}`,g=p??`${d}:${o}`,T=`/paths/${encodeURIComponent(o)}/${d}`;a.push({id:g,path:o,method:d,name:m,summary:r,operationId:p,deprecated:B(i.deprecated)===!0,tags:u,pointer:T,raw:i})}}return a}function ie(e){let t=C(e.tags);if(!t)return[];let a=[];for(let o of t){let n=O(o),c=w(n?.name);!c||!n||a.push({name:c,displayName:re(n)??c,description:w(n.description),parent:w(n.parent),order:R(n),raw:n})}return a}function se(e){return e.some(t=>t.parent!==void 0)}function _(e){return{id:`op:root:${e.id}`,name:e.name,order:R(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function de(e,t,a,o){let n=new Map,c=[];for(let r of t)if(!M(r.raw,a.showInternal)){if(r.tags.length===0){c.push(r);continue}for(let u of r.tags){let m=n.get(u)??[];m.push(r),n.set(u,m)}}let d=r=>{let m=(n.get(r.name)??[]).map(g=>({id:`op:${r.name}:${g.id}`,name:g.name,order:R(g.raw),metadata:{method:g.method,path:g.path,operationId:g.operationId,deprecated:g.deprecated,summary:g.summary,pointer:g.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${r.name}`,name:r.displayName,order:r.order,children:f(m),metadata:{source:"oas32-parent",kind:"tag"}}},s=new Set(e.map(r=>r.name)),i=[...e];for(let r of n.keys())s.has(r)||i.push({name:r,displayName:r,raw:{}});let p=P(i,d,o);return f([...p,...c.map(_)])}function ce(e){let t=C(e["x-tagGroups"]);if(!t)return[];let a=(o,n)=>{let c=O(o),d=w(c?.name),s=C(c?.tags)?.filter(p=>typeof p=="string").map(p=>p.trim()).filter(p=>p.length>0)??[];if(!d)return null;let i=C(c?.groups)?.map((p,r)=>a(p,r)).filter(p=>p!==null)??[];return{name:d,tags:s,groups:i.length>0?i:void 0,order:R(c??{})??n}};return t.map((o,n)=>a(o,n)).filter(o=>o!==null)}function pe(e,t,a,o){let n=new Map;for(let r of t)n.set(r.name,r.displayName);let c=new Map,d=[];for(let r of a)if(!M(r.raw,o.showInternal)){if(r.tags.length===0){d.push(r);continue}for(let u of r.tags){let m=c.get(u)??[];m.push(r),c.set(u,m)}}let s=r=>(c.get(r)??[]).map(m=>({id:`op:${r}:${m.id}`,name:m.name,order:R(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),i=r=>({id:`tag:${r}`,name:n.get(r)??r,children:f(s(r)),metadata:{source:"tag-group",kind:"tag"}}),p=r=>{let u=[];for(let m of r.tags)c.get(m)?.length&&u.push(i(m));for(let m of r.groups??[])u.push(p(m));return{id:`tag-group:${r.name}`,name:r.name,order:r.order,children:f(u),metadata:{source:"tag-group",kind:"tag-group"}}};return f([...e.map(p),...d.map(_)])}function ue(e,t,a){let o=new Map,n=[],c=new Map;for(let i=0;i<e.length;i+=1){let p=e[i];c.set(p.name,p.order??i)}for(let i of t)if(!M(i.raw,a.showInternal)){if(i.tags.length===0){n.push(i);continue}for(let p of i.tags){let r=o.get(p)??[];r.push(i),o.set(p,r)}}let d=new Map;for(let i of e)d.set(i.name,i.displayName);let s=[];for(let[i,p]of o){let r=p.map(u=>({id:`op:${i}:${u.id}`,name:u.name,order:R(u.raw),metadata:{method:u.method,path:u.path,operationId:u.operationId,deprecated:u.deprecated,summary:u.summary,pointer:u.pointer,source:"tag",kind:"operation"}}));s.push({id:`tag:${i}`,name:d.get(i)??i,order:c.get(i),children:f(r),metadata:{source:"tag",kind:"tag"}})}return f([...s,...n.map(_)])}function me(e,t){if(!t.showComponents)return;let a=O(e.components),o=O(a?.schemas);if(!o)return;let n=[];for(let[c,d]of Object.entries(o)){let s=O(d);!s||M(s,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:R(s),metadata:{pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"section",kind:"section",section:"components"}}}function ge(e,t){if(!t.showWebhooks)return;let a=O(e.webhooks);if(!a)return;let o=[];for(let[n,c]of Object.entries(a)){let d=O(c);if(d)for(let s of z){let i=d[s],p=O(i);if(!p||M(p,t.showInternal))continue;let r=w(p.operationId),u=w(p.summary),m=u??r??`${s.toUpperCase()} ${n}`;o.push({id:`webhook:${n}:${s}`,name:m,order:R(p),metadata:{method:s,path:n,operationId:r,deprecated:B(p.deprecated)===!0,summary:u,pointer:`/webhooks/${encodeURIComponent(n)}/${s}`,source:"tag",kind:"webhook"}})}}if(o.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}}function fe(e,t={}){let a={...te,...t},o=[],n=O(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=ae(n),d=ie(n),s;if(se(d))s=de(d,c,a,o);else{let m=ce(n);m.length>0?s=pe(m,d,c,a):s=ue(d,c,a)}let i=ge(n,a),p=me(n,a),u=[{id:"section:apis",name:"APIs",children:s,metadata:{kind:"section",source:"section",section:"apis"},order:0},...i?[i]:[],...p?[p]:[]];return{root:{id:"root",name:"OpenAPI",children:f(u),metadata:{kind:"root"}},warnings:o}}var V={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},j={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Y=new Set(["string","number","integer","boolean","null"]);function x(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function F(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Q(e){return typeof e=="boolean"?e:void 0}function L(e){return Array.isArray(e)?e:void 0}function le(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(a=>typeof a=="string"))return t}function he(e){return e?Array.isArray(e)?e.every(t=>Y.has(t)):Y.has(e):!1}function Te(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Z(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,a=>`\\${a}`)).join(".")||"root"}function E(e,t,a,o,n,c){n.remaining--;let d=le(t),s=F(t.format),i=F(t.description),p=Q(t.deprecated)===!0,r=Te(d),u={jsonPath:a,type:d,format:s,required:c,deprecated:p,description:i,kind:r},m=F(t.$ref);if(m){if(n.refStack.has(m))return n.warnings.push(`Circular $ref detected at ${a.join(".")}: ${m}. Breaking recursion.`),{id:S(a),name:e,metadata:{...u,kind:"ref",isLeaf:!0}};n.refStack.add(m)}let g,T=he(d),y=n.activeSchemas.has(t);if(y&&n.warnings.push(`Circular schema object detected at ${S(a)}.`),y||o>=n.options.maxDepth||n.remaining<=0)return m&&n.refStack.delete(m),{id:S(a),name:e,metadata:{...u,isLeaf:!0}};n.activeSchemas.add(t);let k=x(t.properties);if(k){let A=L(t.required)??[],N=new Set(A.filter(b=>typeof b=="string")),J=[];for(let[b,$]of Object.entries(k)){if(n.remaining<=0)break;let I=x($);I&&(!n.options.showDeprecated&&Q(I.deprecated)===!0||J.push(E(b,I,[...a,"properties",b],o+1,n,N.has(b))))}g=[...g??[],...f(J)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&d==="array"){let A=x(t.items);if(A){let N=E("items",A,[...a,"items"],o+1,n,!1);g=[...g??[],N],T=!1}else u.hasItems=!1}if(n.options.expandCombinators){let A=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:N,kind:J}of A){if(n.remaining<=0)break;let b=L(t[N]);if(!b?.length)continue;n.remaining--;let $=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ne=b[D],W=x(ne);if(!W){n.remaining--,$.push({id:S([...a,N,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...a,N,String(D)],kind:"unknown",isLeaf:!0}});continue}$.push(E(`[${D}]`,W,[...a,N,String(D)],o+1,n,!1))}let I={id:S([...a,N]),name:N,children:f($),metadata:{jsonPath:[...a,N],kind:J}};g=[...g??[],I],T=!1}}return L(t.enum)?.length&&!g?.length&&(u.kind="enum",T=!0),m&&n.refStack.delete(m),n.activeSchemas.delete(t),{id:S(a),name:e,order:Object.prototype.hasOwnProperty.call(V,e)?V[e]:void 0,metadata:{...u,isLeaf:T},children:g}}function Oe(e,t={}){let a={...j,...t};a.maxDepth=Number.isFinite(a.maxDepth)?Math.min(128,Math.max(0,Math.trunc(a.maxDepth))):j.maxDepth,a.maxNodes=Number.isFinite(a.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(a.maxNodes))):j.maxNodes;let o=[],n=x(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let c={options:a,warnings:o,refStack:new Set,activeSchemas:new Set,remaining:a.maxNodes},d=E("root",n,[],0,c,!0);return c.remaining<=0&&o.push(`Schema node limit (${a.maxNodes}) reached; remaining branches were omitted.`),{root:d,warnings:o}}function Ne(e,t){if(t.length===0)return e;let a=JSON.stringify(t),o=[e],n=new Set;for(let c=0;c<o.length;c++){let d=o[c];if(!d||n.has(d))continue;if(n.add(d),JSON.stringify(d.metadata?.jsonPath)===a)return d;for(let i of d.children??[])o.push(i)}}function ye(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Z(e.type)} (${e.format})`:Z(e.type)}var be=["get","put","post","delete","options","head","patch","trace"],we={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function q(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function U(e,t){return t?!1:q(e["x-scalar-ignore"])===!0||q(e["x-internal"])===!0}function H(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function ke(e){return h(e["x-displayName"])}function De(e,t){let a=[];for(let o of e){let n=l(o);if(!n)continue;let c=h(n.name),d=h(n.in);if(!c||!d)continue;let s=`${d}:${c}`;a.push({id:`${t}/parameters/${encodeURIComponent(s)}`,name:c,metadata:{paramIn:d,required:q(n.required)===!0,description:h(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return f(a)}function Re(e,t){let a=[];for(let[o,n]of Object.entries(e)){let c=l(n);if(!c)continue;let d=h(c.description),s=l(c.content),i=[];if(s)for(let[p]of Object.entries(s))i.push({id:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,name:p,metadata:{contentType:p,pointer:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,kind:"content"}});a.push({id:`${t}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:d,pointer:`${t}/responses/${encodeURIComponent(o)}`,kind:"response"},children:i.length>0?i:void 0})}return f(a)}function Ae(e,t){let a=[],o=K(e.parameters);if(o?.length){let d=De(o,t);d.length>0&&a.push({id:`${t}/parameters`,name:"Parameters",children:d,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=l(e.requestBody);if(n){let d=l(n.content),s=[];if(d)for(let[i]of Object.entries(d))s.push({id:`${t}/requestBody/content/${encodeURIComponent(i)}`,name:i,metadata:{contentType:i,pointer:`${t}/requestBody/content/${encodeURIComponent(i)}`,kind:"content"}});a.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:h(n.description),required:q(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:s.length>0?s:void 0})}let c=l(e.responses);if(c){let d=Re(c,t);d.length>0&&a.push({id:`${t}/responses`,name:"Responses",children:d,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return a}function Se(e){let t=l(e.paths);if(!t)return[];let a=[];for(let[o,n]of Object.entries(t)){let c=l(n);if(c)for(let d of be){let s=c[d],i=l(s);if(!i)continue;let p=h(i.operationId),r=h(i.summary),u=h(i.description),m=K(i.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],g=r??p??`${d.toUpperCase()} ${o}`,T=p??`${d}:${o}`,y=`/paths/${encodeURIComponent(o)}/${d}`;a.push({id:T,path:o,method:d,name:g,summary:r,description:u,operationId:p,deprecated:q(i.deprecated)===!0,tags:m,pointer:y,raw:i})}}return a}function $e(e){let t=K(e.tags);if(!t)return[];let a=[];for(let o of t){let n=l(o),c=h(n?.name);!c||!n||a.push({name:c,displayName:ke(n)??c,description:h(n.description),parent:h(n.parent),order:H(n)})}return a}function Ie(e){return e.some(t=>t.parent!==void 0)}function G(e,t,a,o){let n=t.expandOperationDetails?Ae(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:H(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:a,kind:"operation"},children:n&&n.length>0?n:void 0}}function Ce(e,t,a,o){let n=new Map;for(let r of t){if(U(r.raw,a.showInternal))continue;let u=r.tags.length>0?r.tags:["Other"];for(let m of u){let g=n.get(m)??[];g.push(r),n.set(m,g)}}let c=r=>{let m=(n.get(r.name)??[]).map(g=>G(g,a,"oas32-parent",r.name));return{id:`tag:${r.name}`,name:r.displayName,order:r.order,children:f(m),metadata:{description:r.description,source:"oas32-parent",kind:"tag"}}},d=new Set(e.map(r=>r.name)),s=[...e];for(let r of n.keys())r!=="Other"&&!d.has(r)&&s.push({name:r,displayName:r});let i=P(s,c,o),p=n.get("Other")??[];if(p.length>0&&!e.some(r=>r.name==="Other")){let r=p.map(u=>G(u,a,"fallback","Other"));i.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(r),metadata:{source:"fallback",kind:"tag"}})}return f(i)}function Me(e,t,a){let o=new Map,n=new Map;for(let s=0;s<e.length;s+=1)n.set(e[s].name,s);for(let s of t){if(U(s.raw,a.showInternal))continue;let i=s.tags.length>0?s.tags:["Other"];for(let p of i){let r=o.get(p)??[];r.push(s),o.set(p,r)}}let c=new Map;for(let s of e)c.set(s.name,s.displayName);let d=[];for(let[s,i]of o){let p=i.map(r=>G(r,a,"tag",s));d.push({id:`tag:${s}`,name:c.get(s)??s,order:s==="Other"?Number.MAX_SAFE_INTEGER:n.get(s),children:f(p),metadata:{source:"tag",kind:"tag"}})}return f(d)}function xe(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function v(e,t,a=0,o={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(a>=128||o.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];o.active.add(e);let n=[];for(let c of e){if(o.remaining<=0){o.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),o.warned=!0;break}let d=l(c);if(!d||typeof d.name!="string")continue;o.remaining--;let s={name:d.name};Array.isArray(d.tags)&&(s.tags=d.tags.filter(i=>typeof i=="string")),Array.isArray(d.groups)&&(s.groups=v(d.groups,t,a+1,o)),n.push(s)}return o.active.delete(e),n}function ee(e,t,a,o,n,c=0){let d=[];if(e.tags)for(let s of e.tags){let i=t.get(s);if(!i||i.length===0)continue;let p=i.map(r=>G(r,n,"tag-group",s));d.push({id:`tag:${s}`,name:a.get(s)??s,order:o.get(s),children:f(p),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let s of e.groups)d.push(ee(s,t,a,o,n,c+1));return{id:`tag-group:${e.name}`,name:e.name,order:c*1e3,children:f(d),metadata:{source:"tag-group",kind:"tag-group"}}}function qe(e,t,a,o,n){let c=new Map,d=new Map,s=new Map;for(let u=0;u<t.length;u+=1)d.set(t[u].name,u),s.set(t[u].name,t[u].displayName);for(let u of a){if(U(u.raw,o.showInternal))continue;let m=u.tags.length>0?u.tags:["Other"];for(let g of m){let T=c.get(g)??[];T.push(u),c.set(g,T)}}let p=v(e["x-tagGroups"],n).map(u=>ee(u,c,s,d,o)),r=c.get("Other");if(r&&r.length>0){let u=r.map(m=>G(m,o,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(u),metadata:{source:"fallback",kind:"tag"}})}return f(p)}function Ge(e,t){if(!t.showComponents)return;let a=l(e.components),o=l(a?.schemas);if(!o)return;let n=[];for(let[c,d]of Object.entries(o)){let s=l(d);!s||U(s,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:H(s),metadata:{description:h(s.description),pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"tag",kind:"component"}}}function Je(e){let t=new Map,a=X(e);for(let o=a.length-1;o>=0;o--){let n=a[o].node,c=n.children?.map(s=>t.get(s)).filter(Boolean),d=(n.metadata?.kind==="operation"?1:0)+(c?.reduce((s,i)=>s+(i.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:c,metadata:{...n.metadata,operationCount:d}})}return e.map(o=>t.get(o))}function Pe(e,t={}){let a={...we,...t},o=[],n=l(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=Se(n),d=$e(n),s;Ie(d)?s=Ce(d,c,a,o):xe(n)?s=qe(n,d,c,a,o):s=Me(d,c,a);let i=Ge(n,a),p=Je([...s,...i?[i]:[]]);return{root:{id:"root",name:"API Documentation",children:f(p),metadata:{kind:"root"}},warnings:o}}export{fe as a,Oe as b,Ne as c,ye as d,Pe as e};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var X=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Re=Object.getOwnPropertyNames;var Se=Object.prototype.hasOwnProperty;var xe=(e,n)=>{for(var r in n)X(e,r,{get:n[r],enumerable:!0})},Ie=(e,n,r,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of Re(n))!Se.call(e,t)&&t!==r&&X(e,t,{get:()=>n[t],enumerable:!(o=Ae(n,t))||o.enumerable});return e};var $e=e=>Ie(X({},"__esModule",{value:!0}),e);var cn={};xe(cn,{buildDocTree:()=>ke,buildOpenApiTree:()=>fe,buildSchemaTree:()=>Ne,countNodes:()=>re,filterTree:()=>se,findNode:()=>M,findPath:()=>v,findSchemaNodeByPath:()=>ye,flattenTree:()=>F,formatSchemaType:()=>Oe,getBranchIds:()=>ae,getExpandableIds:()=>H,getLeaves:()=>te,getMaxDepth:()=>oe,insertChild:()=>de,isTreeNode:()=>ne,moveNode:()=>ue,removeNode:()=>W,reorderNode:()=>pe,sortNodes:()=>m,sortTree:()=>ie,updateNode:()=>C});module.exports=$e(cn);function ne(e){return e!=null}function*R(e,n=1/0){let r=new Set,o=[];for(let t=e.length-1;t>=0;t--)o.push({node:e[t],depth:1});for(;o.length;){let t=o.pop();if(r.has(t.node)||t.depth>n)continue;r.add(t.node),yield t;let d=t.node.children??[];for(let s=d.length-1;s>=0;s--)o.push({node:d[s],parent:t,depth:t.depth+1})}}function M(e,n){for(let{node:r}of R(e))if(r.id===n)return r}function v(e,n,r=[]){for(let o of R(e)){if(o.node.id!==n)continue;let t=[],d=o;for(;d;)t.push(d.node),d=d.parent;t.reverse();let s=[...r,...t];return{nodes:s,target:o.node,parent:s[s.length-2],ancestorIds:s.slice(0,-1).map(i=>i.id)}}return null}function te(e){let n=[];for(let{node:r}of R(e))r.children?.length||n.push(r);return n}function re(e){let n=0;for(let r of R(e))n++;return n}function oe(e){let n=0;for(let r of R(e))n=Math.max(n,r.depth);return n}var Me=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function m(e){return[...e].sort((n,r)=>{let o=(n.order??Number.MAX_SAFE_INTEGER)-(r.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(o)?0:o)||Me.compare(n.name,r.name)||n.id.localeCompare(r.id)})}function _(e,n,r=()=>!0){let o=new Set,t=new Map,d=[{source:e,output:[],index:0}];for(;d.length;){let s=d[d.length-1];if(s.index<s.source.length){let a=s.source[s.index++];if(o.has(a))continue;if(t.has(a)){let u=t.get(a);u&&s.output.push(u)}else if(a.children?.length&&r(a))o.add(a),d.push({source:a.children,output:[],index:0,owner:a});else{let u=n(a);t.set(a,u),u&&s.output.push(u)}continue}d.pop();let i=s.source.length===s.output.length&&s.source.every((a,u)=>a===s.output[u])?s.source:s.output;if(!s.owner)return i;let c=s.owner,p=n(i===c.children?c:{...c,children:i});o.delete(c),t.set(c,p),p&&d[d.length-1].output.push(p)}return e}function ie(e){return m(_(e,n=>n.children?.length?{...n,children:m(n.children)}:n))}function se(e,n){let r=n.query.trim().toLowerCase();return r?_(e,o=>o.name.toLowerCase().includes(r)||o.id.toLowerCase().includes(r)||(n.keepAncestors??!0)&&o.children?.length?o:null):e}function H(e,n={}){let r=[];for(let{node:o,depth:t}of R(e,n.maxDepth??1/0))t<=(n.maxDepth??1/0)&&(!(n.onlyWithChildren??!0)||o.children?.length)&&r.push(o.id);return r}function ae(e){return H(e)}function F(e){return Array.from(R(e),({node:n,depth:r})=>({node:n,depth:r}))}function C(e,n,r){return _(e,o=>o.id===n?r(o):o,o=>o.id!==n)}function W(e,n){return _(e,r=>r.id===n?null:r,r=>r.id!==n)}function de(e,n,r){return C(e,n,o=>({...o,children:[...o.children??[],r]}))}function ce(e,n){return Math.max(0,Math.min(Number.isNaN(e)?0:Math.trunc(e),n))}function pe(e,n,r){let o=v(e,n);if(!o)return null;let t=o.parent?.children??e,d=t.indexOf(o.target),s=ce(r,t.length-1),i={nodes:e,moved:o.target,parentId:o.parent?.id??null,fromIndex:d,toIndex:s};if(s===d)return i;let c=[...t];return c.splice(d,1),c.splice(s,0,o.target),{...i,nodes:o.parent?C(e,o.parent.id,p=>({...p,children:c})):c}}function ue(e,n,r,o){let t=M(e,n);if(!t||r!==null&&(!M(e,r)||M([t],r)))return null;let d=W(e,n),s=i=>{let c=[...i];return c.splice(ce(o??c.length,c.length),0,t),c};return r===null?s(d):C(d,r,i=>({...i,children:s(i.children??[])}))}function U(e,n,r){let o=new Map;for(let c of e)o.has(c.name)?r.push(`Duplicate tag "${c.name}" was ignored.`):o.set(c.name,c);let t=new Map;for(let c of o.values())c.parent&&!o.has(c.parent)&&r.push(`Tag "${c.name}" references unknown parent "${c.parent}", treating as root.`),t.set(c.name,c.parent&&o.has(c.parent)?c.parent:null);let d=new Set;for(let c of o.keys()){let p=new Set,a=c;for(;a!==null&&!d.has(a);){if(p.has(a)){r.push(`Circular tag reference detected at "${a}". Breaking cycle.`),t.set(a,null);break}p.add(a),a=t.get(a)??null}for(let u of p)d.add(u)}let s=new Map(Array.from(o,([c,p])=>[c,n(p)])),i=[];for(let[c,p]of s){let a=t.get(c);if(a==null)i.push(p);else{let u=s.get(a);(u.children??(u.children=[])).push(p)}}for(let c of s.values())c.children&&(c.children=m(c.children));return m(i)}var me=["get","put","post","delete","options","head","patch","trace"],Ce={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Ee(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function j(e){return typeof e=="boolean"?e:void 0}function E(e){return Array.isArray(e)?e:void 0}function G(e,n){return n?!1:j(e["x-scalar-ignore"])===!0||j(e["x-internal"])===!0}function A(e){return Ee(e["x-order"])}function Ge(e){return w(e["x-displayName"])}function qe(e){let n=N(e.paths);if(!n)return[];let r=[];for(let[o,t]of Object.entries(n)){let d=N(t);if(d)for(let s of me){let i=d[s];if(i==null)continue;let c=N(i);if(!c)continue;let p=w(c.operationId),a=w(c.summary),u=E(c.tags)?.filter(O=>typeof O=="string").map(O=>O.trim()).filter(O=>O.length>0)??[],g=a??p??`${s.toUpperCase()} ${o}`,f=p??`${s}:${o}`,T=`/paths/${encodeURIComponent(o)}/${s}`;r.push({id:f,path:o,method:s,name:g,summary:a,operationId:p,deprecated:j(c.deprecated)===!0,tags:u,pointer:T,raw:c})}}return r}function Je(e){let n=E(e.tags);if(!n)return[];let r=[];for(let o of n){let t=N(o),d=w(t?.name);!d||!t||r.push({name:d,displayName:Ge(t)??d,description:w(t.description),parent:w(t.parent),order:A(t),raw:t})}return r}function Be(e){return e.some(n=>n.parent!==void 0)}function Pe(e,n,r,o){let t=new Map;for(let a of n){if(G(a.raw,r.showInternal))continue;let u=a.tags.length>0?a.tags:["Other"];for(let g of u){let f=t.get(g)??[];f.push(a),t.set(g,f)}}let d=a=>{let g=(t.get(a.name)??[]).map(f=>({id:`op:${a.name}:${f.id}`,name:f.name,order:A(f.raw),metadata:{method:f.method,path:f.path,operationId:f.operationId,deprecated:f.deprecated,summary:f.summary,pointer:f.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:m(g),metadata:{source:"oas32-parent",kind:"tag"}}},s=new Set(e.map(a=>a.name)),i=[...e];for(let a of t.keys())a!=="Other"&&!s.has(a)&&i.push({name:a,displayName:a,raw:{}});let c=U(i,d,o),p=t.get("Other")??[];if(p.length>0&&!e.some(a=>a.name==="Other")){let a=p.map(u=>({id:`op:Other:${u.id}`,name:u.name,order:A(u.raw),metadata:{method:u.method,path:u.path,operationId:u.operationId,deprecated:u.deprecated,summary:u.summary,pointer:u.pointer,source:"fallback",kind:"operation"}}));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:m(a),metadata:{source:"fallback",kind:"tag"}})}return m(c)}function _e(e){let n=E(e["x-tagGroups"]);if(!n)return[];let r=(o,t)=>{let d=N(o),s=w(d?.name),i=E(d?.tags)?.filter(p=>typeof p=="string").map(p=>p.trim()).filter(p=>p.length>0)??[];if(!s)return null;let c=E(d?.groups)?.map((p,a)=>r(p,a)).filter(p=>p!==null)??[];return{name:s,tags:i,groups:c.length>0?c:void 0,order:A(d??{})??t}};return n.map((o,t)=>r(o,t)).filter(o=>o!==null)}function Fe(e,n,r,o){let t=new Map;for(let p of n)t.set(p.name,p.displayName);let d=new Map;for(let p of r)if(!G(p.raw,o.showInternal))for(let a of p.tags){let u=d.get(a)??[];u.push(p),d.set(a,u)}let s=p=>(d.get(p)??[]).map(u=>({id:`op:${p}:${u.id}`,name:u.name,order:A(u.raw),metadata:{method:u.method,path:u.path,operationId:u.operationId,deprecated:u.deprecated,summary:u.summary,pointer:u.pointer,source:"tag-group",kind:"operation"}})),i=p=>({id:`tag:${p}`,name:t.get(p)??p,children:m(s(p)),metadata:{source:"tag-group",kind:"tag"}}),c=p=>{let a=[];for(let u of p.tags)d.get(u)?.length&&a.push(i(u));for(let u of p.groups??[])a.push(c(u));return{id:`tag-group:${p.name}`,name:p.name,order:p.order,children:m(a),metadata:{source:"tag-group",kind:"tag-group"}}};return m(e.map(c))}function Ue(e,n,r){let o=new Map,t=new Map;for(let i=0;i<e.length;i+=1){let c=e[i];t.set(c.name,c.order??i)}for(let i of n){if(G(i.raw,r.showInternal))continue;let c=i.tags.length>0?i.tags:["Other"];for(let p of c){let a=o.get(p)??[];a.push(i),o.set(p,a)}}let d=new Map;for(let i of e)d.set(i.name,i.displayName);let s=[];for(let[i,c]of o){let p=c.map(a=>({id:`op:${i}:${a.id}`,name:a.name,order:A(a.raw),metadata:{method:a.method,path:a.path,operationId:a.operationId,deprecated:a.deprecated,summary:a.summary,pointer:a.pointer,source:"tag",kind:"operation"}}));s.push({id:`tag:${i}`,name:d.get(i)??i,order:i==="Other"?Number.MAX_SAFE_INTEGER:t.get(i),children:m(p),metadata:{source:"tag",kind:"tag"}})}return m(s)}function je(e,n){if(!n.showComponents)return;let r=N(e.components),o=N(r?.schemas);if(!o)return;let t=[];for(let[d,s]of Object.entries(o)){let i=N(s);!i||G(i,n.showInternal)||t.push({id:`schema:${d}`,name:d,order:A(i),metadata:{pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:m(t),metadata:{source:"section",kind:"section",section:"components"}}}function Le(e,n){if(!n.showWebhooks)return;let r=N(e.webhooks);if(!r)return;let o=[];for(let[t,d]of Object.entries(r)){let s=N(d);if(s)for(let i of me){let c=s[i],p=N(c);if(!p||G(p,n.showInternal))continue;let a=w(p.operationId),u=w(p.summary),g=u??a??`${i.toUpperCase()} ${t}`;o.push({id:`webhook:${t}:${i}`,name:g,order:A(p),metadata:{method:i,path:t,operationId:a,deprecated:j(p.deprecated)===!0,summary:u,pointer:`/webhooks/${encodeURIComponent(t)}/${i}`,source:"tag",kind:"webhook"}})}}if(o.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:m(o),metadata:{source:"section",kind:"section",section:"webhooks"}}}function fe(e,n={}){let r={...Ce,...n},o=[],t=N(e);if(!t)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=qe(t),s=Je(t),i;if(Be(s))i=Pe(s,d,r,o);else{let g=_e(t);g.length>0?i=Fe(g,s,d,r):i=Ue(s,d,r)}let c=Le(t,r),p=je(t,r),u=[{id:"section:apis",name:"APIs",children:i,metadata:{kind:"section",source:"section",section:"apis"},order:0},...c?[c]:[],...p?[p]:[]];return{root:{id:"root",name:"OpenAPI",children:m(u),metadata:{kind:"root"}},warnings:o}}var ge={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},z={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},le=new Set(["string","number","integer","boolean","null"]);function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function V(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function he(e){return typeof e=="boolean"?e:void 0}function Y(e){return Array.isArray(e)?e:void 0}function Ke(e){let n=e.type;if(typeof n=="string"||Array.isArray(n)&&n.every(r=>typeof r=="string"))return n}function Xe(e){return e?Array.isArray(e)?e.every(n=>le.has(n)):le.has(e):!1}function ve(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Te(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function x(e){return e.map(n=>n.replace(/[\\.\[\]]/g,r=>`\\${r}`)).join(".")||"root"}function L(e,n,r,o,t,d){t.remaining--;let s=Ke(n),i=V(n.format),c=V(n.description),p=he(n.deprecated)===!0,a=ve(s),u={jsonPath:r,type:s,format:i,required:d,deprecated:p,description:c,kind:a},g=V(n.$ref);if(g){if(t.refStack.has(g))return t.warnings.push(`Circular $ref detected at ${r.join(".")}: ${g}. Breaking recursion.`),{id:x(r),name:e,metadata:{...u,kind:"ref",isLeaf:!0}};t.refStack.add(g)}let f,T=Xe(s),O=t.activeSchemas.has(n);if(O&&t.warnings.push(`Circular schema object detected at ${x(r)}.`),O||o>=t.options.maxDepth||t.remaining<=0)return g&&t.refStack.delete(g),{id:x(r),name:e,metadata:{...u,isLeaf:!0}};t.activeSchemas.add(n);let k=q(n.properties);if(k){let S=Y(n.required)??[],y=new Set(S.filter(b=>typeof b=="string")),P=[];for(let[b,I]of Object.entries(k)){if(t.remaining<=0)break;let $=q(I);$&&(!t.options.showDeprecated&&he($.deprecated)===!0||P.push(L(b,$,[...r,"properties",b],o+1,t,y.has(b))))}f=[...f??[],...m(P)],T=!1}if(t.remaining>0&&t.options.showArrayItems&&s==="array"){let S=q(n.items);if(S){let y=L("items",S,[...r,"items"],o+1,t,!1);f=[...f??[],y],T=!1}else u.hasItems=!1}if(t.options.expandCombinators){let S=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:y,kind:P}of S){if(t.remaining<=0)break;let b=Y(n[y]);if(!b?.length)continue;t.remaining--;let I=[];for(let D=0;D<b.length&&t.remaining>0;D++){let De=b[D],ee=q(De);if(!ee){t.remaining--,I.push({id:x([...r,y,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...r,y,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(L(`[${D}]`,ee,[...r,y,String(D)],o+1,t,!1))}let $={id:x([...r,y]),name:y,children:m(I),metadata:{jsonPath:[...r,y],kind:P}};f=[...f??[],$],T=!1}}return Y(n.enum)?.length&&!f?.length&&(u.kind="enum",T=!0),g&&t.refStack.delete(g),t.activeSchemas.delete(n),{id:x(r),name:e,order:Object.prototype.hasOwnProperty.call(ge,e)?ge[e]:void 0,metadata:{...u,isLeaf:T},children:f}}function Ne(e,n={}){let r={...z,...n};r.maxDepth=Number.isFinite(r.maxDepth)?Math.min(128,Math.max(0,Math.trunc(r.maxDepth))):z.maxDepth,r.maxNodes=Number.isFinite(r.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(r.maxNodes))):z.maxNodes;let o=[],t=q(e);if(!t)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let d={options:r,warnings:o,refStack:new Set,activeSchemas:new Set,remaining:r.maxNodes},s=L("root",t,[],0,d,!0);return d.remaining<=0&&o.push(`Schema node limit (${r.maxNodes}) reached; remaining branches were omitted.`),{root:s,warnings:o}}function ye(e,n){if(n.length===0)return e;let r=JSON.stringify(n),o=[e],t=new Set;for(let d=0;d<o.length;d++){let s=o[d];if(!s||t.has(s))continue;if(t.add(s),JSON.stringify(s.metadata?.jsonPath)===r)return s;for(let c of s.children??[])o.push(c)}}function Oe(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Te(e.type)} (${e.format})`:Te(e.type)}var He=["get","put","post","delete","options","head","patch","trace"],We={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function J(e){return typeof e=="boolean"?e:void 0}function Q(e){return Array.isArray(e)?e:void 0}function K(e,n){return n?!1:J(e["x-scalar-ignore"])===!0||J(e["x-internal"])===!0}function Z(e){let n=e["x-order"];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function ze(e){return h(e["x-displayName"])}function Ve(e,n){let r=[];for(let o of e){let t=l(o);if(!t)continue;let d=h(t.name),s=h(t.in);if(!d||!s)continue;let i=`${s}:${d}`;r.push({id:`${n}/parameters/${encodeURIComponent(i)}`,name:d,metadata:{paramIn:s,required:J(t.required)===!0,description:h(t.description),pointer:`${n}/parameters`,kind:"parameter"}})}return m(r)}function Ye(e,n){let r=[];for(let[o,t]of Object.entries(e)){let d=l(t);if(!d)continue;let s=h(d.description),i=l(d.content),c=[];if(i)for(let[p]of Object.entries(i))c.push({id:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,name:p,metadata:{contentType:p,pointer:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,kind:"content"}});r.push({id:`${n}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:s,pointer:`${n}/responses/${encodeURIComponent(o)}`,kind:"response"},children:c.length>0?c:void 0})}return m(r)}function Qe(e,n){let r=[],o=Q(e.parameters);if(o?.length){let s=Ve(o,n);s.length>0&&r.push({id:`${n}/parameters`,name:"Parameters",children:s,metadata:{pointer:`${n}/parameters`,kind:"parameters"}})}let t=l(e.requestBody);if(t){let s=l(t.content),i=[];if(s)for(let[c]of Object.entries(s))i.push({id:`${n}/requestBody/content/${encodeURIComponent(c)}`,name:c,metadata:{contentType:c,pointer:`${n}/requestBody/content/${encodeURIComponent(c)}`,kind:"content"}});r.push({id:`${n}/requestBody`,name:"Request Body",metadata:{description:h(t.description),required:J(t.required)===!0,pointer:`${n}/requestBody`,kind:"request-body"},children:i.length>0?i:void 0})}let d=l(e.responses);if(d){let s=Ye(d,n);s.length>0&&r.push({id:`${n}/responses`,name:"Responses",children:s,metadata:{pointer:`${n}/responses`,kind:"responses"}})}return r}function Ze(e){let n=l(e.paths);if(!n)return[];let r=[];for(let[o,t]of Object.entries(n)){let d=l(t);if(d)for(let s of He){let i=d[s],c=l(i);if(!c)continue;let p=h(c.operationId),a=h(c.summary),u=h(c.description),g=Q(c.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],f=a??p??`${s.toUpperCase()} ${o}`,T=p??`${s}:${o}`,O=`/paths/${encodeURIComponent(o)}/${s}`;r.push({id:T,path:o,method:s,name:f,summary:a,description:u,operationId:p,deprecated:J(c.deprecated)===!0,tags:g,pointer:O,raw:c})}}return r}function en(e){let n=Q(e.tags);if(!n)return[];let r=[];for(let o of n){let t=l(o),d=h(t?.name);!d||!t||r.push({name:d,displayName:ze(t)??d,description:h(t.description),parent:h(t.parent),order:Z(t)})}return r}function nn(e){return e.some(n=>n.parent!==void 0)}function B(e,n,r,o){let t=n.expandOperationDetails?Qe(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:r,kind:"operation"},children:t&&t.length>0?t:void 0}}function tn(e,n,r,o){let t=new Map;for(let a of n){if(K(a.raw,r.showInternal))continue;let u=a.tags.length>0?a.tags:["Other"];for(let g of u){let f=t.get(g)??[];f.push(a),t.set(g,f)}}let d=a=>{let g=(t.get(a.name)??[]).map(f=>B(f,r,"oas32-parent",a.name));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:m(g),metadata:{description:a.description,source:"oas32-parent",kind:"tag"}}},s=new Set(e.map(a=>a.name)),i=[...e];for(let a of t.keys())a!=="Other"&&!s.has(a)&&i.push({name:a,displayName:a});let c=U(i,d,o),p=t.get("Other")??[];if(p.length>0&&!e.some(a=>a.name==="Other")){let a=p.map(u=>B(u,r,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:m(a),metadata:{source:"fallback",kind:"tag"}})}return m(c)}function rn(e,n,r){let o=new Map,t=new Map;for(let i=0;i<e.length;i+=1)t.set(e[i].name,i);for(let i of n){if(K(i.raw,r.showInternal))continue;let c=i.tags.length>0?i.tags:["Other"];for(let p of c){let a=o.get(p)??[];a.push(i),o.set(p,a)}}let d=new Map;for(let i of e)d.set(i.name,i.displayName);let s=[];for(let[i,c]of o){let p=c.map(a=>B(a,r,"tag",i));s.push({id:`tag:${i}`,name:d.get(i)??i,order:i==="Other"?Number.MAX_SAFE_INTEGER:t.get(i),children:m(p),metadata:{source:"tag",kind:"tag"}})}return m(s)}function on(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function be(e,n,r=0,o={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(r>=128||o.active.has(e))return n.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];o.active.add(e);let t=[];for(let d of e){if(o.remaining<=0){o.warned||n.push("Tag group limit (10,000) reached; remaining groups were omitted."),o.warned=!0;break}let s=l(d);if(!s||typeof s.name!="string")continue;o.remaining--;let i={name:s.name};Array.isArray(s.tags)&&(i.tags=s.tags.filter(c=>typeof c=="string")),Array.isArray(s.groups)&&(i.groups=be(s.groups,n,r+1,o)),t.push(i)}return o.active.delete(e),t}function we(e,n,r,o,t,d=0){let s=[];if(e.tags)for(let i of e.tags){let c=n.get(i);if(!c||c.length===0)continue;let p=c.map(a=>B(a,t,"tag-group",i));s.push({id:`tag:${i}`,name:r.get(i)??i,order:o.get(i),children:m(p),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let i of e.groups)s.push(we(i,n,r,o,t,d+1));return{id:`tag-group:${e.name}`,name:e.name,order:d*1e3,children:m(s),metadata:{source:"tag-group",kind:"tag-group"}}}function sn(e,n,r,o,t){let d=new Map,s=new Map,i=new Map;for(let u=0;u<n.length;u+=1)s.set(n[u].name,u),i.set(n[u].name,n[u].displayName);for(let u of r){if(K(u.raw,o.showInternal))continue;let g=u.tags.length>0?u.tags:["Other"];for(let f of g){let T=d.get(f)??[];T.push(u),d.set(f,T)}}let p=be(e["x-tagGroups"],t).map(u=>we(u,d,i,s,o)),a=d.get("Other");if(a&&a.length>0){let u=a.map(g=>B(g,o,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:m(u),metadata:{source:"fallback",kind:"tag"}})}return m(p)}function an(e,n){if(!n.showComponents)return;let r=l(e.components),o=l(r?.schemas);if(!o)return;let t=[];for(let[d,s]of Object.entries(o)){let i=l(s);!i||K(i,n.showInternal)||t.push({id:`schema:${d}`,name:d,order:Z(i),metadata:{description:h(i.description),pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:m(t),metadata:{source:"tag",kind:"component"}}}function dn(e){let n=new Map,r=F(e);for(let o=r.length-1;o>=0;o--){let t=r[o].node,d=t.children?.map(i=>n.get(i)).filter(Boolean),s=(t.metadata?.kind==="operation"?1:0)+(d?.reduce((i,c)=>i+(c.metadata?.operationCount??0),0)??0);n.set(t,{...t,children:d,metadata:{...t.metadata,operationCount:s}})}return e.map(o=>n.get(o))}function ke(e,n={}){let r={...We,...n},o=[],t=l(e);if(!t)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=Ze(t),s=en(t),i;nn(s)?i=tn(s,d,r,o):on(t)?i=sn(t,s,d,r,o):i=rn(s,d,r);let c=an(t,r),p=dn([...i,...c?[c]:[]]);return{root:{id:"root",name:"API Documentation",children:m(p),metadata:{kind:"root"}},warnings:o}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,countNodes,filterTree,findNode,findPath,findSchemaNodeByPath,flattenTree,formatSchemaType,getBranchIds,getExpandableIds,getLeaves,getMaxDepth,insertChild,isTreeNode,moveNode,removeNode,reorderNode,sortNodes,sortTree,updateNode});
1
+ "use strict";var v=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Se=Object.getOwnPropertyNames;var xe=Object.prototype.hasOwnProperty;var Ie=(e,n)=>{for(var r in n)v(e,r,{get:n[r],enumerable:!0})},$e=(e,n,r,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of Se(n))!xe.call(e,t)&&t!==r&&v(e,t,{get:()=>n[t],enumerable:!(o=Ae(n,t))||o.enumerable});return e};var Ce=e=>$e(v({},"__esModule",{value:!0}),e);var pn={};Ie(pn,{buildDocTree:()=>De,buildOpenApiTree:()=>ge,buildSchemaTree:()=>ye,countNodes:()=>oe,filterTree:()=>ae,findNode:()=>C,findPath:()=>H,findSchemaNodeByPath:()=>Oe,flattenTree:()=>_,formatSchemaType:()=>be,getBranchIds:()=>de,getExpandableIds:()=>W,getLeaves:()=>re,getMaxDepth:()=>ie,insertChild:()=>ce,isTreeNode:()=>te,moveNode:()=>me,removeNode:()=>X,reorderNode:()=>ue,sortNodes:()=>f,sortTree:()=>se,updateNode:()=>M});module.exports=Ce(pn);function te(e){return e!=null}function*A(e,n=1/0){let r=new Set,o=[];for(let t=e.length-1;t>=0;t--)o.push({node:e[t],depth:1});for(;o.length;){let t=o.pop();if(r.has(t.node)||t.depth>n)continue;r.add(t.node),yield t;let d=t.node.children??[];for(let i=d.length-1;i>=0;i--)o.push({node:d[i],parent:t,depth:t.depth+1})}}function C(e,n){for(let{node:r}of A(e))if(r.id===n)return r}function H(e,n,r=[]){for(let o of A(e)){if(o.node.id!==n)continue;let t=[],d=o;for(;d;)t.push(d.node),d=d.parent;t.reverse();let i=[...r,...t];return{nodes:i,target:o.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(c=>c.id)}}return null}function re(e){let n=[];for(let{node:r}of A(e))r.children?.length||n.push(r);return n}function oe(e){let n=0;for(let r of A(e))n++;return n}function ie(e){let n=0;for(let r of A(e))n=Math.max(n,r.depth);return n}var Me=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function f(e){return[...e].sort((n,r)=>{let o=(n.order??Number.MAX_SAFE_INTEGER)-(r.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(o)?0:o)||Me.compare(n.name,r.name)||n.id.localeCompare(r.id)})}function F(e,n,r=()=>!0){let o=new Set,t=new Map,d=[{source:e,output:[],index:0}];for(;d.length;){let i=d[d.length-1];if(i.index<i.source.length){let a=i.source[i.index++];if(o.has(a))continue;if(t.has(a)){let u=t.get(a);u&&i.output.push(u)}else if(a.children?.length&&r(a))o.add(a),d.push({source:a.children,output:[],index:0,owner:a});else{let u=n(a);t.set(a,u),u&&i.output.push(u)}continue}d.pop();let c=i.source.length===i.output.length&&i.source.every((a,u)=>a===i.output[u])?i.source:i.output;if(!i.owner)return c;let s=i.owner,p=n(c===s.children?s:{...s,children:c});o.delete(s),t.set(s,p),p&&d[d.length-1].output.push(p)}return e}function se(e){return f(F(e,n=>n.children?.length?{...n,children:f(n.children)}:n))}function ae(e,n){let r=n.query.trim().toLowerCase();return r?F(e,o=>o.name.toLowerCase().includes(r)||o.id.toLowerCase().includes(r)||(n.keepAncestors??!0)&&o.children?.length?o:null):e}function W(e,n={}){let r=[];for(let{node:o,depth:t}of A(e,n.maxDepth??1/0))t<=(n.maxDepth??1/0)&&(!(n.onlyWithChildren??!0)||o.children?.length)&&r.push(o.id);return r}function de(e){return W(e)}function _(e){return Array.from(A(e),({node:n,depth:r})=>({node:n,depth:r}))}function M(e,n,r){return F(e,o=>o.id===n?r(o):o,o=>o.id!==n)}function X(e,n){return F(e,r=>r.id===n?null:r,r=>r.id!==n)}function ce(e,n,r){return M(e,n,o=>({...o,children:[...o.children??[],r]}))}function pe(e,n){return Math.max(0,Math.min(Number.isNaN(e)?0:Math.trunc(e),n))}function ue(e,n,r){let o=H(e,n);if(!o)return null;let t=o.parent?.children??e,d=t.indexOf(o.target),i=pe(r,t.length-1),c={nodes:e,moved:o.target,parentId:o.parent?.id??null,fromIndex:d,toIndex:i};if(i===d)return c;let s=[...t];return s.splice(d,1),s.splice(i,0,o.target),{...c,nodes:o.parent?M(e,o.parent.id,p=>({...p,children:s})):s}}function me(e,n,r,o){let t=C(e,n);if(!t||r!==null&&(!C(e,r)||C([t],r)))return null;let d=X(e,n),i=c=>{let s=[...c];return s.splice(pe(o??s.length,s.length),0,t),s};return r===null?i(d):M(d,r,c=>({...c,children:i(c.children??[])}))}function U(e,n,r){let o=new Map;for(let s of e)o.has(s.name)?r.push(`Duplicate tag "${s.name}" was ignored.`):o.set(s.name,s);let t=new Map;for(let s of o.values())s.parent&&!o.has(s.parent)&&r.push(`Tag "${s.name}" references unknown parent "${s.parent}", treating as root.`),t.set(s.name,s.parent&&o.has(s.parent)?s.parent:null);let d=new Set;for(let s of o.keys()){let p=new Set,a=s;for(;a!==null&&!d.has(a);){if(p.has(a)){r.push(`Circular tag reference detected at "${a}". Breaking cycle.`),t.set(a,null);break}p.add(a),a=t.get(a)??null}for(let u of p)d.add(u)}let i=new Map(Array.from(o,([s,p])=>[s,n(p)])),c=[];for(let[s,p]of i){let a=t.get(s);if(a==null)c.push(p);else{let u=i.get(a);(u.children??(u.children=[])).push(p)}}for(let s of i.values())s.children&&(s.children=f(s.children));return f(c)}var fe=["get","put","post","delete","options","head","patch","trace"],Ee={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Ge(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function j(e){return typeof e=="boolean"?e:void 0}function E(e){return Array.isArray(e)?e:void 0}function G(e,n){return n?!1:j(e["x-scalar-ignore"])===!0||j(e["x-internal"])===!0}function R(e){return Ge(e["x-order"])}function qe(e){return w(e["x-displayName"])}function Pe(e){let n=N(e.paths);if(!n)return[];let r=[];for(let[o,t]of Object.entries(n)){let d=N(t);if(d)for(let i of fe){let c=d[i];if(c==null)continue;let s=N(c);if(!s)continue;let p=w(s.operationId),a=w(s.summary),u=E(s.tags)?.filter(O=>typeof O=="string").map(O=>O.trim()).filter(O=>O.length>0)??[],m=a??p??`${i.toUpperCase()} ${o}`,g=p??`${i}:${o}`,T=`/paths/${encodeURIComponent(o)}/${i}`;r.push({id:g,path:o,method:i,name:m,summary:a,operationId:p,deprecated:j(s.deprecated)===!0,tags:u,pointer:T,raw:s})}}return r}function Je(e){let n=E(e.tags);if(!n)return[];let r=[];for(let o of n){let t=N(o),d=w(t?.name);!d||!t||r.push({name:d,displayName:qe(t)??d,description:w(t.description),parent:w(t.parent),order:R(t),raw:t})}return r}function Be(e){return e.some(n=>n.parent!==void 0)}function z(e){return{id:`op:root:${e.id}`,name:e.name,order:R(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function Fe(e,n,r,o){let t=new Map,d=[];for(let a of n)if(!G(a.raw,r.showInternal)){if(a.tags.length===0){d.push(a);continue}for(let u of a.tags){let m=t.get(u)??[];m.push(a),t.set(u,m)}}let i=a=>{let m=(t.get(a.name)??[]).map(g=>({id:`op:${a.name}:${g.id}`,name:g.name,order:R(g.raw),metadata:{method:g.method,path:g.path,operationId:g.operationId,deprecated:g.deprecated,summary:g.summary,pointer:g.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:f(m),metadata:{source:"oas32-parent",kind:"tag"}}},c=new Set(e.map(a=>a.name)),s=[...e];for(let a of t.keys())c.has(a)||s.push({name:a,displayName:a,raw:{}});let p=U(s,i,o);return f([...p,...d.map(z)])}function _e(e){let n=E(e["x-tagGroups"]);if(!n)return[];let r=(o,t)=>{let d=N(o),i=w(d?.name),c=E(d?.tags)?.filter(p=>typeof p=="string").map(p=>p.trim()).filter(p=>p.length>0)??[];if(!i)return null;let s=E(d?.groups)?.map((p,a)=>r(p,a)).filter(p=>p!==null)??[];return{name:i,tags:c,groups:s.length>0?s:void 0,order:R(d??{})??t}};return n.map((o,t)=>r(o,t)).filter(o=>o!==null)}function Ue(e,n,r,o){let t=new Map;for(let a of n)t.set(a.name,a.displayName);let d=new Map,i=[];for(let a of r)if(!G(a.raw,o.showInternal)){if(a.tags.length===0){i.push(a);continue}for(let u of a.tags){let m=d.get(u)??[];m.push(a),d.set(u,m)}}let c=a=>(d.get(a)??[]).map(m=>({id:`op:${a}:${m.id}`,name:m.name,order:R(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),s=a=>({id:`tag:${a}`,name:t.get(a)??a,children:f(c(a)),metadata:{source:"tag-group",kind:"tag"}}),p=a=>{let u=[];for(let m of a.tags)d.get(m)?.length&&u.push(s(m));for(let m of a.groups??[])u.push(p(m));return{id:`tag-group:${a.name}`,name:a.name,order:a.order,children:f(u),metadata:{source:"tag-group",kind:"tag-group"}}};return f([...e.map(p),...i.map(z)])}function je(e,n,r){let o=new Map,t=[],d=new Map;for(let s=0;s<e.length;s+=1){let p=e[s];d.set(p.name,p.order??s)}for(let s of n)if(!G(s.raw,r.showInternal)){if(s.tags.length===0){t.push(s);continue}for(let p of s.tags){let a=o.get(p)??[];a.push(s),o.set(p,a)}}let i=new Map;for(let s of e)i.set(s.name,s.displayName);let c=[];for(let[s,p]of o){let a=p.map(u=>({id:`op:${s}:${u.id}`,name:u.name,order:R(u.raw),metadata:{method:u.method,path:u.path,operationId:u.operationId,deprecated:u.deprecated,summary:u.summary,pointer:u.pointer,source:"tag",kind:"operation"}}));c.push({id:`tag:${s}`,name:i.get(s)??s,order:d.get(s),children:f(a),metadata:{source:"tag",kind:"tag"}})}return f([...c,...t.map(z)])}function Le(e,n){if(!n.showComponents)return;let r=N(e.components),o=N(r?.schemas);if(!o)return;let t=[];for(let[d,i]of Object.entries(o)){let c=N(i);!c||G(c,n.showInternal)||t.push({id:`schema:${d}`,name:d,order:R(c),metadata:{pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(t),metadata:{source:"section",kind:"section",section:"components"}}}function Ke(e,n){if(!n.showWebhooks)return;let r=N(e.webhooks);if(!r)return;let o=[];for(let[t,d]of Object.entries(r)){let i=N(d);if(i)for(let c of fe){let s=i[c],p=N(s);if(!p||G(p,n.showInternal))continue;let a=w(p.operationId),u=w(p.summary),m=u??a??`${c.toUpperCase()} ${t}`;o.push({id:`webhook:${t}:${c}`,name:m,order:R(p),metadata:{method:c,path:t,operationId:a,deprecated:j(p.deprecated)===!0,summary:u,pointer:`/webhooks/${encodeURIComponent(t)}/${c}`,source:"tag",kind:"webhook"}})}}if(o.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}}function ge(e,n={}){let r={...Ee,...n},o=[],t=N(e);if(!t)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=Pe(t),i=Je(t),c;if(Be(i))c=Fe(i,d,r,o);else{let m=_e(t);m.length>0?c=Ue(m,i,d,r):c=je(i,d,r)}let s=Ke(t,r),p=Le(t,r),u=[{id:"section:apis",name:"APIs",children:c,metadata:{kind:"section",source:"section",section:"apis"},order:0},...s?[s]:[],...p?[p]:[]];return{root:{id:"root",name:"OpenAPI",children:f(u),metadata:{kind:"root"}},warnings:o}}var le={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},V={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},he=new Set(["string","number","integer","boolean","null"]);function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Y(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Te(e){return typeof e=="boolean"?e:void 0}function Q(e){return Array.isArray(e)?e:void 0}function ve(e){let n=e.type;if(typeof n=="string"||Array.isArray(n)&&n.every(r=>typeof r=="string"))return n}function He(e){return e?Array.isArray(e)?e.every(n=>he.has(n)):he.has(e):!1}function We(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Ne(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function x(e){return e.map(n=>n.replace(/[\\.\[\]]/g,r=>`\\${r}`)).join(".")||"root"}function L(e,n,r,o,t,d){t.remaining--;let i=ve(n),c=Y(n.format),s=Y(n.description),p=Te(n.deprecated)===!0,a=We(i),u={jsonPath:r,type:i,format:c,required:d,deprecated:p,description:s,kind:a},m=Y(n.$ref);if(m){if(t.refStack.has(m))return t.warnings.push(`Circular $ref detected at ${r.join(".")}: ${m}. Breaking recursion.`),{id:x(r),name:e,metadata:{...u,kind:"ref",isLeaf:!0}};t.refStack.add(m)}let g,T=He(i),O=t.activeSchemas.has(n);if(O&&t.warnings.push(`Circular schema object detected at ${x(r)}.`),O||o>=t.options.maxDepth||t.remaining<=0)return m&&t.refStack.delete(m),{id:x(r),name:e,metadata:{...u,isLeaf:!0}};t.activeSchemas.add(n);let k=q(n.properties);if(k){let S=Q(n.required)??[],y=new Set(S.filter(b=>typeof b=="string")),B=[];for(let[b,I]of Object.entries(k)){if(t.remaining<=0)break;let $=q(I);$&&(!t.options.showDeprecated&&Te($.deprecated)===!0||B.push(L(b,$,[...r,"properties",b],o+1,t,y.has(b))))}g=[...g??[],...f(B)],T=!1}if(t.remaining>0&&t.options.showArrayItems&&i==="array"){let S=q(n.items);if(S){let y=L("items",S,[...r,"items"],o+1,t,!1);g=[...g??[],y],T=!1}else u.hasItems=!1}if(t.options.expandCombinators){let S=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:y,kind:B}of S){if(t.remaining<=0)break;let b=Q(n[y]);if(!b?.length)continue;t.remaining--;let I=[];for(let D=0;D<b.length&&t.remaining>0;D++){let Re=b[D],ne=q(Re);if(!ne){t.remaining--,I.push({id:x([...r,y,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...r,y,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(L(`[${D}]`,ne,[...r,y,String(D)],o+1,t,!1))}let $={id:x([...r,y]),name:y,children:f(I),metadata:{jsonPath:[...r,y],kind:B}};g=[...g??[],$],T=!1}}return Q(n.enum)?.length&&!g?.length&&(u.kind="enum",T=!0),m&&t.refStack.delete(m),t.activeSchemas.delete(n),{id:x(r),name:e,order:Object.prototype.hasOwnProperty.call(le,e)?le[e]:void 0,metadata:{...u,isLeaf:T},children:g}}function ye(e,n={}){let r={...V,...n};r.maxDepth=Number.isFinite(r.maxDepth)?Math.min(128,Math.max(0,Math.trunc(r.maxDepth))):V.maxDepth,r.maxNodes=Number.isFinite(r.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(r.maxNodes))):V.maxNodes;let o=[],t=q(e);if(!t)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let d={options:r,warnings:o,refStack:new Set,activeSchemas:new Set,remaining:r.maxNodes},i=L("root",t,[],0,d,!0);return d.remaining<=0&&o.push(`Schema node limit (${r.maxNodes}) reached; remaining branches were omitted.`),{root:i,warnings:o}}function Oe(e,n){if(n.length===0)return e;let r=JSON.stringify(n),o=[e],t=new Set;for(let d=0;d<o.length;d++){let i=o[d];if(!i||t.has(i))continue;if(t.add(i),JSON.stringify(i.metadata?.jsonPath)===r)return i;for(let s of i.children??[])o.push(s)}}function be(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Ne(e.type)} (${e.format})`:Ne(e.type)}var Xe=["get","put","post","delete","options","head","patch","trace"],ze={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function P(e){return typeof e=="boolean"?e:void 0}function Z(e){return Array.isArray(e)?e:void 0}function K(e,n){return n?!1:P(e["x-scalar-ignore"])===!0||P(e["x-internal"])===!0}function ee(e){let n=e["x-order"];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Ve(e){return h(e["x-displayName"])}function Ye(e,n){let r=[];for(let o of e){let t=l(o);if(!t)continue;let d=h(t.name),i=h(t.in);if(!d||!i)continue;let c=`${i}:${d}`;r.push({id:`${n}/parameters/${encodeURIComponent(c)}`,name:d,metadata:{paramIn:i,required:P(t.required)===!0,description:h(t.description),pointer:`${n}/parameters`,kind:"parameter"}})}return f(r)}function Qe(e,n){let r=[];for(let[o,t]of Object.entries(e)){let d=l(t);if(!d)continue;let i=h(d.description),c=l(d.content),s=[];if(c)for(let[p]of Object.entries(c))s.push({id:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,name:p,metadata:{contentType:p,pointer:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,kind:"content"}});r.push({id:`${n}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:i,pointer:`${n}/responses/${encodeURIComponent(o)}`,kind:"response"},children:s.length>0?s:void 0})}return f(r)}function Ze(e,n){let r=[],o=Z(e.parameters);if(o?.length){let i=Ye(o,n);i.length>0&&r.push({id:`${n}/parameters`,name:"Parameters",children:i,metadata:{pointer:`${n}/parameters`,kind:"parameters"}})}let t=l(e.requestBody);if(t){let i=l(t.content),c=[];if(i)for(let[s]of Object.entries(i))c.push({id:`${n}/requestBody/content/${encodeURIComponent(s)}`,name:s,metadata:{contentType:s,pointer:`${n}/requestBody/content/${encodeURIComponent(s)}`,kind:"content"}});r.push({id:`${n}/requestBody`,name:"Request Body",metadata:{description:h(t.description),required:P(t.required)===!0,pointer:`${n}/requestBody`,kind:"request-body"},children:c.length>0?c:void 0})}let d=l(e.responses);if(d){let i=Qe(d,n);i.length>0&&r.push({id:`${n}/responses`,name:"Responses",children:i,metadata:{pointer:`${n}/responses`,kind:"responses"}})}return r}function en(e){let n=l(e.paths);if(!n)return[];let r=[];for(let[o,t]of Object.entries(n)){let d=l(t);if(d)for(let i of Xe){let c=d[i],s=l(c);if(!s)continue;let p=h(s.operationId),a=h(s.summary),u=h(s.description),m=Z(s.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],g=a??p??`${i.toUpperCase()} ${o}`,T=p??`${i}:${o}`,O=`/paths/${encodeURIComponent(o)}/${i}`;r.push({id:T,path:o,method:i,name:g,summary:a,description:u,operationId:p,deprecated:P(s.deprecated)===!0,tags:m,pointer:O,raw:s})}}return r}function nn(e){let n=Z(e.tags);if(!n)return[];let r=[];for(let o of n){let t=l(o),d=h(t?.name);!d||!t||r.push({name:d,displayName:Ve(t)??d,description:h(t.description),parent:h(t.parent),order:ee(t)})}return r}function tn(e){return e.some(n=>n.parent!==void 0)}function J(e,n,r,o){let t=n.expandOperationDetails?Ze(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:ee(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:r,kind:"operation"},children:t&&t.length>0?t:void 0}}function rn(e,n,r,o){let t=new Map;for(let a of n){if(K(a.raw,r.showInternal))continue;let u=a.tags.length>0?a.tags:["Other"];for(let m of u){let g=t.get(m)??[];g.push(a),t.set(m,g)}}let d=a=>{let m=(t.get(a.name)??[]).map(g=>J(g,r,"oas32-parent",a.name));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:f(m),metadata:{description:a.description,source:"oas32-parent",kind:"tag"}}},i=new Set(e.map(a=>a.name)),c=[...e];for(let a of t.keys())a!=="Other"&&!i.has(a)&&c.push({name:a,displayName:a});let s=U(c,d,o),p=t.get("Other")??[];if(p.length>0&&!e.some(a=>a.name==="Other")){let a=p.map(u=>J(u,r,"fallback","Other"));s.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(a),metadata:{source:"fallback",kind:"tag"}})}return f(s)}function on(e,n,r){let o=new Map,t=new Map;for(let c=0;c<e.length;c+=1)t.set(e[c].name,c);for(let c of n){if(K(c.raw,r.showInternal))continue;let s=c.tags.length>0?c.tags:["Other"];for(let p of s){let a=o.get(p)??[];a.push(c),o.set(p,a)}}let d=new Map;for(let c of e)d.set(c.name,c.displayName);let i=[];for(let[c,s]of o){let p=s.map(a=>J(a,r,"tag",c));i.push({id:`tag:${c}`,name:d.get(c)??c,order:c==="Other"?Number.MAX_SAFE_INTEGER:t.get(c),children:f(p),metadata:{source:"tag",kind:"tag"}})}return f(i)}function sn(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function we(e,n,r=0,o={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(r>=128||o.active.has(e))return n.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];o.active.add(e);let t=[];for(let d of e){if(o.remaining<=0){o.warned||n.push("Tag group limit (10,000) reached; remaining groups were omitted."),o.warned=!0;break}let i=l(d);if(!i||typeof i.name!="string")continue;o.remaining--;let c={name:i.name};Array.isArray(i.tags)&&(c.tags=i.tags.filter(s=>typeof s=="string")),Array.isArray(i.groups)&&(c.groups=we(i.groups,n,r+1,o)),t.push(c)}return o.active.delete(e),t}function ke(e,n,r,o,t,d=0){let i=[];if(e.tags)for(let c of e.tags){let s=n.get(c);if(!s||s.length===0)continue;let p=s.map(a=>J(a,t,"tag-group",c));i.push({id:`tag:${c}`,name:r.get(c)??c,order:o.get(c),children:f(p),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let c of e.groups)i.push(ke(c,n,r,o,t,d+1));return{id:`tag-group:${e.name}`,name:e.name,order:d*1e3,children:f(i),metadata:{source:"tag-group",kind:"tag-group"}}}function an(e,n,r,o,t){let d=new Map,i=new Map,c=new Map;for(let u=0;u<n.length;u+=1)i.set(n[u].name,u),c.set(n[u].name,n[u].displayName);for(let u of r){if(K(u.raw,o.showInternal))continue;let m=u.tags.length>0?u.tags:["Other"];for(let g of m){let T=d.get(g)??[];T.push(u),d.set(g,T)}}let p=we(e["x-tagGroups"],t).map(u=>ke(u,d,c,i,o)),a=d.get("Other");if(a&&a.length>0){let u=a.map(m=>J(m,o,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(u),metadata:{source:"fallback",kind:"tag"}})}return f(p)}function dn(e,n){if(!n.showComponents)return;let r=l(e.components),o=l(r?.schemas);if(!o)return;let t=[];for(let[d,i]of Object.entries(o)){let c=l(i);!c||K(c,n.showInternal)||t.push({id:`schema:${d}`,name:d,order:ee(c),metadata:{description:h(c.description),pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(t),metadata:{source:"tag",kind:"component"}}}function cn(e){let n=new Map,r=_(e);for(let o=r.length-1;o>=0;o--){let t=r[o].node,d=t.children?.map(c=>n.get(c)).filter(Boolean),i=(t.metadata?.kind==="operation"?1:0)+(d?.reduce((c,s)=>c+(s.metadata?.operationCount??0),0)??0);n.set(t,{...t,children:d,metadata:{...t.metadata,operationCount:i}})}return e.map(o=>n.get(o))}function De(e,n={}){let r={...ze,...n},o=[],t=l(e);if(!t)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=en(t),i=nn(t),c;tn(i)?c=rn(i,d,r,o):sn(t)?c=an(t,i,d,r,o):c=on(i,d,r);let s=dn(t,r),p=cn([...c,...s?[s]:[]]);return{root:{id:"root",name:"API Documentation",children:f(p),metadata:{kind:"root"}},warnings:o}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,countNodes,filterTree,findNode,findPath,findSchemaNodeByPath,flattenTree,formatSchemaType,getBranchIds,getExpandableIds,getLeaves,getMaxDepth,insertChild,isTreeNode,moveNode,removeNode,reorderNode,sortNodes,sortTree,updateNode});
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a as l,b as n,c as q,d as s,e as u}from"./chunk-UK2AZ4W7.js";import"./chunk-NHPRTISE.js";import{a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i,p as j,q as k}from"./chunk-AHHDXXHL.js";export{u as buildDocTree,l as buildOpenApiTree,n as buildSchemaTree,m as countNodes,a as filterTree,r as findNode,e as findPath,q as findSchemaNodeByPath,d as flattenTree,s as formatSchemaType,c as getBranchIds,b as getExpandableIds,f as getLeaves,p as getMaxDepth,i as insertChild,o as isTreeNode,k as moveNode,h as removeNode,j as reorderNode,t as sortNodes,x as sortTree,g as updateNode};
1
+ import{a as l,b as n,c as q,d as s,e as u}from"./chunk-KPRGJSJS.js";import"./chunk-NHPRTISE.js";import{a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i,p as j,q as k}from"./chunk-AHHDXXHL.js";export{u as buildDocTree,l as buildOpenApiTree,n as buildSchemaTree,m as countNodes,a as filterTree,r as findNode,e as findPath,q as findSchemaNodeByPath,d as flattenTree,s as formatSchemaType,c as getBranchIds,b as getExpandableIds,f as getLeaves,p as getMaxDepth,i as insertChild,o as isTreeNode,k as moveNode,h as removeNode,j as reorderNode,t as sortNodes,x as sortTree,g as updateNode};
@@ -1 +1 @@
1
- "use strict";var qe=Object.defineProperty;var wt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var It=Object.prototype.hasOwnProperty;var Nt=(t,e)=>{for(var a in e)qe(t,a,{get:e[a],enumerable:!0})},Mt=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of yt(e))!It.call(t,n)&&n!==a&&qe(t,n,{get:()=>e[n],enumerable:!(o=wt(e,n))||o.enumerable});return t};var St=t=>Mt(qe({},"__esModule",{value:!0}),t);var Gt={};Nt(Gt,{METHOD_LABEL_MAP:()=>Oe,Tree:()=>dt,getMethodLabel:()=>Me,useTreeExpansion:()=>Le,useTreeSearch:()=>Pe});module.exports=St(Gt);var p=require("react");function*je(t,e=1/0){let a=new Set,o=[];for(let n=t.length-1;n>=0;n--)o.push({node:t[n],depth:1});for(;o.length;){let n=o.pop();if(a.has(n.node)||n.depth>e)continue;a.add(n.node),yield n;let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parent:n,depth:n.depth+1})}}function Fe(t,e){for(let{node:a}of je(t))if(a.id===e)return a}function kt(t,e,a=[]){for(let o of je(t)){if(o.node.id!==e)continue;let n=[],l=o;for(;l;)n.push(l.node),l=l.parent;n.reverse();let i=[...a,...n];return{nodes:i,target:o.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(T=>T.id)}}return null}var jt=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function $e(t,e,a=()=>!0){let o=new Set,n=new Map,l=[{source:t,output:[],index:0}];for(;l.length;){let i=l[l.length-1];if(i.index<i.source.length){let c=i.source[i.index++];if(o.has(c))continue;if(n.has(c)){let x=n.get(c);x&&i.output.push(x)}else if(c.children?.length&&a(c))o.add(c),l.push({source:c.children,output:[],index:0,owner:c});else{let x=e(c);n.set(c,x),x&&i.output.push(x)}continue}l.pop();let T=i.source.length===i.output.length&&i.source.every((c,x)=>c===i.output[x])?i.source:i.output;if(!i.owner)return T;let g=i.owner,I=e(T===g.children?g:{...g,children:T});o.delete(g),n.set(g,I),I&&l[l.length-1].output.push(I)}return t}function Ue(t,e){let a=e.query.trim().toLowerCase();return a?$e(t,o=>o.name.toLowerCase().includes(a)||o.id.toLowerCase().includes(a)||(e.keepAncestors??!0)&&o.children?.length?o:null):t}function Ee(t,e={}){let a=[];for(let{node:o,depth:n}of je(t,e.maxDepth??1/0))n<=(e.maxDepth??1/0)&&(!(e.onlyWithChildren??!0)||o.children?.length)&&a.push(o.id);return a}function Xe(t){return Ee(t)}function Ye(t,e,a){return $e(t,o=>o.id===e?a(o):o,o=>o.id!==e)}function Dt(t,e){return $e(t,a=>a.id===e?null:a,a=>a.id!==e)}function Ze(t,e){return Math.max(0,Math.min(Number.isNaN(t)?0:Math.trunc(t),e))}function et(t,e,a){let o=kt(t,e);if(!o)return null;let n=o.parent?.children??t,l=n.indexOf(o.target),i=Ze(a,n.length-1),T={nodes:t,moved:o.target,parentId:o.parent?.id??null,fromIndex:l,toIndex:i};if(i===l)return T;let g=[...n];return g.splice(l,1),g.splice(i,0,o.target),{...T,nodes:o.parent?Ye(t,o.parent.id,I=>({...I,children:g})):g}}function We(t,e,a,o){let n=Fe(t,e);if(!n||a!==null&&(!Fe(t,a)||Fe([n],a)))return null;let l=Dt(t,e),i=T=>{let g=[...T];return g.splice(Ze(o??g.length,g.length),0,n),g};return a===null?i(l):Ye(l,a,T=>({...T,children:i(T.children??[])}))}var de=require("react"),tt=require("react-dom"),ae=require("react/jsx-runtime");function rt({state:t,onClose:e}){let a=(0,de.useRef)(null),[o,n]=(0,de.useState)(null),[l,i]=(0,de.useState)({left:t.x,top:t.y}),[T,g]=(0,de.useState)({}),I=t.anchor.closest("dialog")??t.anchor.ownerDocument.body;return(0,de.useLayoutEffect)(()=>{let c=t.anchor.closest(".pde-tree-root")??t.anchor,x=getComputedStyle(c),M={};for(let k=0;k<x.length;k++){let A=x.item(k);(A.startsWith("--tree-")||A.startsWith("--color-")||A.startsWith("--radius-")||A.startsWith("--font-")||A.startsWith("--shadow-"))&&(M[A]=x.getPropertyValue(A))}g(M);let v=a.current;if(!v)return;let O=()=>{let k=v.getBoundingClientRect();i({left:Math.max(8,Math.min(t.x,document.documentElement.clientWidth-k.width-8)),top:Math.max(8,Math.min(t.y,document.documentElement.clientHeight-k.height-8))})};O();let K=typeof ResizeObserver>"u"?void 0:new ResizeObserver(O);K?.observe(v),v.querySelector("button:not(:disabled)")?.focus();let X=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()},Y=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()};return document.addEventListener("pointerdown",X),document.addEventListener("scroll",Y,!0),window.addEventListener("resize",e),()=>{K?.disconnect(),document.removeEventListener("pointerdown",X),document.removeEventListener("scroll",Y,!0),window.removeEventListener("resize",e),v.contains(document.activeElement)&&t.anchor.isConnected&&t.anchor.focus({preventScroll:!0})}},[t,e]),(0,tt.createPortal)((0,ae.jsx)("div",{ref:a,className:"pde-tree-contextMenu",style:{...T,...l},role:"menu","aria-label":`Actions for ${t.node.name}`,tabIndex:-1,onKeyDown:c=>{let x=a.current;if(!x)return;let M=Array.from(x.querySelectorAll("button:not(:disabled)")),v=M.indexOf(document.activeElement);if(c.key==="Escape"||c.key==="Tab"){c.key==="Escape"&&c.preventDefault(),c.stopPropagation(),e();return}let O;if(c.key==="ArrowDown")O=(v+1)%M.length;else if(c.key==="ArrowUp")O=(v-1+M.length)%M.length;else if(c.key==="Home")O=0;else if(c.key==="End")O=M.length-1;else return;c.preventDefault(),M[O]?.focus()},children:t.items.map((c,x)=>(0,ae.jsxs)("div",{role:"presentation",children:[c.separator&&(0,ae.jsx)("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),(0,ae.jsxs)("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:c.disabled,className:`pde-tree-contextMenuItem${c.danger?" pde-tree-contextMenuItemDanger":""}${o===x?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(c.confirm&&o!==x){n(x);return}e(),c.onClick(t.node)},children:[c.icon&&(0,ae.jsx)("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:c.icon}),(0,ae.jsx)("span",{children:c.confirm&&o===x?c.confirmLabel??"Confirm?":c.label})]})]},`${c.label}-${x}`))}),I)}var L=require("react");function Le(t,e={}){let{defaultExpandedIds:a,defaultExpandDepth:o=1,onExpandedChange:n}=e,l=(0,L.useMemo)(()=>a!==void 0?[...a]:o<=1?[]:Ee(t,{maxDepth:o-1,onlyWithChildren:!0}),[]),[i,T]=(0,L.useState)(l),g=(0,L.useRef)(new Map),I=(0,L.useMemo)(()=>Xe(t),[t]),c=(0,L.useMemo)(()=>new Set(i),[i]),x=(0,L.useRef)(i);x.current=i;let M=(0,L.useMemo)(()=>I.length>0&&I.every(S=>c.has(S)),[I,c]),v=(0,L.useCallback)(S=>{x.current=S,T(S),n?.(S)},[n]),O=(0,L.useCallback)(S=>{let D=x.current,ie=D.includes(S)?D.filter(me=>me!==S):[...D,S];v(ie)},[v]),K=(0,L.useCallback)(()=>{v([...I])},[I,v]),X=(0,L.useCallback)(()=>{v([])},[v]),Y=(0,L.useCallback)(S=>{let D=Ee(t,{maxDepth:S,onlyWithChildren:!0});v(D)},[t,v]),k=(0,L.useCallback)((S,D)=>{D?g.current.set(S,D):g.current.delete(S)},[]),A=(0,L.useCallback)(S=>{let D=g.current.get(S);D&&D.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:i,setExpandedIds:v,toggleNode:O,expandAll:K,collapseAll:X,expandToDepth:Y,isAllExpanded:M,allBranchIds:I,setNodeElementRef:k,scrollToNode:A,nodeElementRefs:g}}var Q=require("react");function Pe(t){let[e,a]=(0,Q.useState)(""),o=(0,Q.useDeferredValue)(e),[n,l]=(0,Q.useState)(null),i=o.trim().length>0,T=(0,Q.useMemo)(()=>i?Ue(t,{query:o,keepAncestors:!0}):t,[t,o,i]),g=(0,Q.useCallback)((c,x)=>{let M=e.trim(),v=c.trim();!M&&v&&l(x),M&&!v&&l(null),a(c)},[e]),I=(0,Q.useCallback)(()=>{a(""),l(null)},[]);return{query:e,deferredQuery:o,isSearching:i,filteredNodes:T,expandedBeforeSearch:n,handleQueryChange:g,clearSearch:I}}function ot(t){let e=new Map,a=new Set,o=t.map(n=>({node:n,parentId:null})).reverse();for(;o.length;){let n=o.pop();if(a.has(n.node)||e.has(n.node.id))continue;a.add(n.node),e.set(n.node.id,n);let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parentId:n.node.id})}return{byId:e,path(n){let l=e.get(n);if(!l)return null;let i=[l.node],T=l.parentId;for(;T!==null;){let g=e.get(T);if(!g)break;i.push(g.node),T=g.parentId}return i.reverse(),{nodes:i,target:l.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(g=>g.id)}}}}var Oe={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PATCH",head:"HEAD",options:"OPT",trace:"TRA",connect:"CONN"};function Me(t){let e=t.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Oe,e)?Oe[e]:e.slice(0,4).toUpperCase()}var N=require("react-icons/lu"),Be=require("react-icons/md"),s=require("react/jsx-runtime"),h={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Ct({expanded:t}){return(0,s.jsx)("span",{className:h.expandIcon,children:t?(0,s.jsx)(N.LuChevronDown,{size:14}):(0,s.jsx)(N.LuChevronRight,{size:14})})}function Rt(){return(0,s.jsx)(N.LuSearch,{size:14,"aria-hidden":"true"})}function Et(){return(0,s.jsx)(N.LuGripVertical,{size:14,"aria-hidden":"true"})}function Lt(){return(0,s.jsx)(N.LuEllipsisVertical,{size:14,"aria-hidden":"true"})}function nt(t){let a=t.metadata?.jsonPath;if(Array.isArray(a)&&a.length>0&&a.every(o=>typeof o=="string"||typeof o=="number"&&Number.isInteger(o)&&o>=0))return a}function Pt(t,e,a,o){let n=nt(t);if(!n||n.length===0)return[];let l=JSON.stringify(n.slice(0,-1));if(!o.every((T,g)=>{let I=nt(T);return I&&I[I.length-1]===g&&JSON.stringify(I.slice(0,-1))===l}))return[];let i=n.slice(0,-1);return[{op:"move",from:[...i,e],path:[...i,a]}]}function Ot({text:t,query:e}){if(!e)return(0,s.jsx)(s.Fragment,{children:t});let a=t.toLowerCase(),o=e.toLowerCase(),n=a.indexOf(o);return n===-1?(0,s.jsx)(s.Fragment,{children:t}):(0,s.jsxs)(s.Fragment,{children:[t.slice(0,n),(0,s.jsx)("span",{className:h.highlight,children:t.slice(n,n+e.length)}),t.slice(n+e.length)]})}var at={get:h.methodGet,post:h.methodPost,put:h.methodPut,patch:h.methodPatch,delete:h.methodDelete};function Bt({method:t}){let e=t.toLowerCase(),a=Object.prototype.hasOwnProperty.call(at,e)?at[e]:h.methodOther,o=Me(t);return(0,s.jsx)("span",{className:`${h.methodBadge} ${a}`,children:o})}var _={draggedId:null,dragOverId:null,dragOverPosition:null};function zt(t,e){if(t.isFocused!==e.isFocused||t.positionInSet!==e.positionInSet||t.setSize!==e.setSize||t.node!==e.node||t.depth!==e.depth||t.isExpanded!==e.isExpanded||t.isSelected!==e.isSelected||t.searchQuery!==e.searchQuery||t.showIndentGuides!==e.showIndentGuides||t.canDragNode!==e.canDragNode||t.draggable!==e.draggable||t.showContextMenuButton!==e.showContextMenuButton||t.activeMenuNodeId===t.node.id!=(e.activeMenuNodeId===e.node.id))return!1;let a=t.dragState.draggedId===t.node.id,o=e.dragState.draggedId===e.node.id;if(a!==o)return!1;let n=t.dragState.dragOverId===t.node.id,l=e.dragState.dragOverId===e.node.id;return!(n!==l||n&&l&&t.dragState.dragOverPosition!==e.dragState.dragOverPosition||t.renderIcon!==e.renderIcon||t.renderLabel!==e.renderLabel||t.renderSuffix!==e.renderSuffix||t.renderNode!==e.renderNode||t.onToggle!==e.onToggle||t.onSelect!==e.onSelect||t.onNodeRef!==e.onNodeRef||t.onDragStart!==e.onDragStart||t.onDragOver!==e.onDragOver||t.onDragLeave!==e.onDragLeave||t.onDrop!==e.onDrop||t.onDragEnd!==e.onDragEnd||t.onContextMenu!==e.onContextMenu||t.onMoreClick!==e.onMoreClick)}function At(t){let{node:e,depth:a,onToggle:o,onSelect:n,onNodeRef:l,searchQuery:i,showIndentGuides:T,renderIcon:g,renderLabel:I,renderSuffix:c,renderNode:x,draggable:M,dragState:v,canDragNode:O,onDragStart:K,onDragOver:X,onDragLeave:Y,onDrop:k,onDragEnd:A,showContextMenuButton:S,activeMenuNodeId:D,onContextMenu:ie,onMoreClick:me}=t,{isExpanded:F,isSelected:xe}=t,ue=(e.children?.length??0)>0,B=ue,Se=!ue,se=v.draggedId===e.id,V=v.dragOverId===e.id,Z=V?v.dragOverPosition:null,H=e.metadata,J=typeof H?.method=="string"?H.method:void 0,be=H?.deprecated===!0,ze=H?.required===!0,G=typeof H?.kind=="string"?H.kind:void 0,U={node:e,depth:a,isExpanded:F,isSelected:xe,isBranch:B,isLeaf:Se,isDragging:se,isDragOver:V,dragOverPosition:Z},fe=(0,p.useCallback)(()=>{B?o(e.id):n(e)},[B,e,n,o]),j=(0,p.useCallback)(w=>{w.target===w.currentTarget&&(w.key==="Enter"||w.key===" "?(w.preventDefault(),fe()):(w.key==="ArrowRight"&&B&&!F||w.key==="ArrowLeft"&&B&&F)&&(w.preventDefault(),w.stopPropagation(),o(e.id)))},[fe,B,F,e.id,o]),z=g?g(U):J?null:(0,s.jsx)("span",{className:h.nodeIcon,children:G==="section"&&H?.section==="components"?(0,s.jsx)(N.LuBraces,{size:14}):G==="section"&&H?.section==="webhooks"?(0,s.jsx)(N.LuZap,{size:14}):G==="schema"||G==="component"||G==="object"?(0,s.jsx)(N.LuBraces,{size:14}):G==="array"||G==="items"?(0,s.jsx)(N.LuList,{size:14}):B?F?(0,s.jsx)(N.LuFolderOpen,{size:14}):(0,s.jsx)(N.LuFolder,{size:14}):(0,s.jsx)("span",{className:h.primitiveDot})}),he=I?I(U):(0,s.jsx)("span",{className:`${h.nodeLabel} ${B?h.nodeLabelBranch:""} ${be?h.deprecatedLabel:""}`,children:(0,s.jsx)(Ot,{text:e.name,query:i})}),ke=c?c(U):null,ce=[h.nodeRow,B?h.branchControl:h.leafItem,xe?h.nodeRowSelected:"",se?h.nodeDragging:"",V&&Z==="before"?h.dropIndicatorBefore:"",V&&Z==="after"?h.dropIndicatorAfter:"",V&&Z==="child"?h.dropIndicatorChild:"",G?`pde-tree-kind-${G}`:""].filter(Boolean).join(" "),De=(0,p.useCallback)(w=>l(e.id,w),[e.id,l]),C=(0,s.jsxs)("div",{ref:De,className:ce,style:{paddingLeft:`${Math.min(a,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":B?F:void 0,"aria-label":J?`${Me(J)} ${e.name}`:e.name,"aria-selected":xe,"aria-level":a+1,"aria-posinset":t.positionInSet,"aria-setsize":t.setSize,"aria-grabbed":M&&O?se:void 0,tabIndex:t.isFocused?0:-1,onFocus:()=>t.onFocusNode(e.id),onClick:fe,onKeyDown:j,onContextMenu:S?w=>ie(e,w):void 0,onDragOver:M?w=>X(e,w):void 0,onDragLeave:M?()=>Y(e):void 0,onDrop:M?w=>k(e,w):void 0,children:[T&&a>1&&Array.from({length:Math.min(a-1,20)},(w,ee)=>(0,s.jsx)("span",{className:h.indentGuide,style:{left:`${(ee+1)*12+29}px`}},`guide-${ee}`)),M&&O&&(0,s.jsx)("span",{className:h.dragHandle,draggable:!0,onDragStart:w=>K(e,w),onDragEnd:A,title:"Drag to reorder","aria-label":"Drag to reorder",children:(0,s.jsx)(Et,{})}),B?(0,s.jsx)(Ct,{expanded:F}):(0,s.jsx)("span",{className:h.expandIconPlaceholder}),z,J&&(0,s.jsx)(Bt,{method:J}),he,ze&&(0,s.jsx)("span",{className:h.requiredDot,title:"Required"}),(0,s.jsx)("span",{className:h.nodeSuffix,children:ke}),S&&(0,s.jsx)("button",{type:"button",className:[h.moreButton,D===e.id?h.moreButtonActive:""].filter(Boolean).join(" "),onClick:w=>me(e,w),title:"More actions","aria-label":`More actions for ${e.name}`,"aria-haspopup":"menu","aria-expanded":D===e.id,tabIndex:-1,children:(0,s.jsx)(Lt,{})})]}),Ce=x?x(U,C):C;return(0,s.jsx)(s.Fragment,{children:Ce})}var Ht=(0,p.memo)(At,zt),dt=(0,p.forwardRef)(function(e,a){let{nodes:o,onSelect:n,onExpandedChange:l,defaultExpandedIds:i,defaultExpandDepth:T=1,searchable:g=!1,searchPlaceholder:I="Search...",showExpandAll:c=!1,showRefresh:x=!1,onRefresh:M,toolbar:v,searchRowExtra:O,renderNode:K,renderIcon:X,renderLabel:Y,renderSuffix:k,className:A,style:S,size:D="sm",variant:ie="default",showIndentGuides:me=!0,maxHeight:F,rootRef:xe,draggable:ue=!1,dragGroupKey:B,onReorder:Se,onMove:se,canDrag:V,canDrop:Z,contextMenuItems:H,onContextMenuOpen:J,onPatch:be,theme:ze,virtualized:G="auto"}=e,[U,fe]=(0,p.useState)(null),[j,z]=(0,p.useState)(_),[he,ke]=(0,p.useState)(null),ce=(0,p.useRef)(null),De=(0,p.useId)(),C=(0,p.useMemo)(()=>ot(o),[o]),[Ce,w]=(0,p.useState)({top:0,height:400}),[ee,ve]=(0,p.useState)(null),[Ae,Qe]=(0,p.useState)(null),y=Le(o,{defaultExpandedIds:i,defaultExpandDepth:T,onExpandedChange:l}),P=Pe(o),_e=P.isSearching?y.allBranchIds:P.expandedBeforeSearch??y.expandedIds,Te=(0,p.useMemo)(()=>new Set(_e),[_e]),R=(0,p.useMemo)(()=>{let r=[],d=new Set,u=P.filteredNodes.map((f,b,m)=>({node:f,depth:0,parentId:null,positionInSet:b+1,setSize:m.length})).reverse();for(;u.length;){let f=u.pop();if(!d.has(f.node.id)&&(d.add(f.node.id),r.push(f),Te.has(f.node.id))){let b=f.node.children??[];for(let m=b.length-1;m>=0;m--)u.push({node:b[m],depth:f.depth+1,parentId:f.node.id,positionInSet:m+1,setSize:b.length})}}return r},[P.filteredNodes,Te]),we=(0,p.useMemo)(()=>new Map(R.map((r,d)=>[r.node.id,d])),[R]),le=D==="xs"?24:D==="md"?32:28,te=G!==!1&&ie!=="doc"&&!K&&(G===!0||R.length>500),ge=te?Math.max(0,Math.min(Math.floor(Ce.top/le)-8,R.length-1)):0,ye=te?Math.min(R.length,ge+Math.ceil(Ce.height/le)+16):R.length,Ke=R.slice(ge,ye);(0,p.useEffect)(()=>{let r=ce.current;if(!r)return;let d=()=>w({top:r.scrollTop,height:r.clientHeight||400});d();let u=typeof ResizeObserver>"u"?void 0:new ResizeObserver(d);return u?.observe(r),()=>u?.disconnect()},[]),(0,p.useEffect)(()=>{if(!ee)return;let r=we.get(ee.id);if(r===void 0){ve(null);return}let d=ce.current;if(te&&d&&(r<ge||r>=ye)){let f=d.clientHeight||400,b=Math.min(r*le,Math.max(0,R.length*le-f));d.scrollTop=b,w(m=>({...m,top:d.scrollTop}));return}let u=y.nodeElementRefs.current.get(ee.id);ee.focus&&u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"nearest"}),ve(null)},[ee,we,te,le,ge,ye,R.length,y.nodeElementRefs]);let He=Ae===null?void 0:we.get(Ae),it=He!==void 0&&He>=ge&&He<ye?Ae:Ke[0]?.node.id,Ge=(0,p.useRef)({query:"",time:0}),st=r=>{if(!(r.target instanceof HTMLElement)||r.target.getAttribute("role")!=="treeitem")return;let d=we.get(r.target.dataset.nodeId??"");if(d===void 0)return;let u=R[d],f=d;if(r.key==="ArrowDown")f=Math.min(d+1,R.length-1);else if(r.key==="ArrowUp")f=Math.max(0,d-1);else if(r.key==="Home")f=0;else if(r.key==="End")f=R.length-1;else if(r.key==="ArrowRight"&&u.node.children?.length&&Te.has(u.node.id))f=Math.min(d+1,R.length-1);else if(r.key==="ArrowLeft"&&(!u.node.children?.length||!Te.has(u.node.id)))f=we.get(u.parentId??"")??d;else if(r.key==="ContextMenu"||r.shiftKey&&r.key==="F10"){let m=r.target.getBoundingClientRect();r.preventDefault(),Ne(u.node,m.left+24,m.bottom);return}else if(r.key.length===1&&r.key!==" "&&!r.ctrlKey&&!r.metaKey&&!r.altKey){let m=Date.now(),q=m-Ge.current.time<600?Ge.current.query+r.key.toLowerCase():r.key.toLowerCase();Ge.current={query:q,time:m};for(let E=1;E<=R.length;E++){let W=(d+E)%R.length;if(R[W].node.name.toLowerCase().startsWith(q)){f=W;break}}}else return;r.preventDefault();let b=R[f].node.id;Qe(b),ve({id:b,focus:!0})};(0,p.useEffect)(()=>{ce.current&&(ce.current.scrollTop=0),w(r=>({...r,top:0}))},[P.deferredQuery]);let ct=(0,p.useCallback)(r=>{fe(r.id),n?.(r)},[n]),lt=(0,p.useCallback)(r=>{!r.trim()&&P.expandedBeforeSearch&&y.setExpandedIds(P.expandedBeforeSearch),P.handleQueryChange(r,y.expandedIds)},[y.expandedIds,P]),Ie=(0,p.useCallback)(r=>!ue||r.metadata?.kind==="section"?!1:V?V(r):!0,[V,ue]),Re=(0,p.useCallback)((r,d,u)=>{if(r.id===d.id||!Ie(r)||C.path(d.id)?.ancestorIds.includes(r.id))return!1;if(B){let b=E=>{let W=C.path(E)?.nodes??[];for(let re=W.length-1;re>=0;re--){let oe=W[re]?.metadata;if(oe&&typeof oe=="object"&&Object.prototype.hasOwnProperty.call(oe,B))return oe[B]}},m=b(r.id),q=b(d.id);if(m!==void 0&&q!==void 0&&m!==q)return!1}return!Z||Z(r,d,u)},[Ie,Z,B,C]),pt=(0,p.useCallback)((r,d)=>{if(!Ie(r)){d.preventDefault();return}d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",r.id),z({draggedId:r.id,dragOverId:null,dragOverPosition:null})},[Ie]),ut=(0,p.useCallback)((r,d)=>{if(!j.draggedId||j.draggedId===r.id)return;d.dataTransfer.dropEffect="none";let u=d.currentTarget.getBoundingClientRect(),f=(d.clientY-u.top)/u.height,b=(r.children?.length??0)>0,m;b?f<.25?m="before":f>.75?m="after":m="child":m=f<.5?"before":"after";let q=C.byId.get(j.draggedId)?.node;if(!q||!Re(q,r,m)){z(E=>E.dragOverId===null?E:{...E,dragOverId:null,dragOverPosition:null});return}d.preventDefault(),d.dataTransfer.dropEffect="move",z(E=>E.dragOverId===r.id&&E.dragOverPosition===m?E:{...E,dragOverId:r.id,dragOverPosition:m})},[Re,j.draggedId,C]),ft=(0,p.useCallback)(r=>{z(d=>d.dragOverId!==r.id?d:{...d,dragOverId:null,dragOverPosition:null})},[]),ht=(0,p.useCallback)((r,d)=>{d.preventDefault();let u=j.draggedId,f=j.dragOverPosition;if(!u||!f||u===r.id||j.dragOverId!==r.id){z(_);return}let b=C.byId.get(u)?.node;if(!b||!Re(b,r,f)){z(_);return}if(f==="child"){let pe=C.path(u)?.target;if(!pe){z(_);return}let Je=We(o,u,r.id);Je&&se?.(Je,pe,r.id),z(_);return}let m=C.path(r.id);if(!m){z(_);return}let q=m.parent?.children??o,E=q.findIndex($=>$.id===r.id);if(E===-1){z(_);return}let W=f==="before"?E:E+1,re=C.path(u),oe=m.parent?.id??null;if((re?.parent?.id??null)!==oe){let $=re?.target,pe=We(o,u,oe,W);pe&&$&&se?.(pe,$,oe),z(_);return}if(re&&re.parent===m.parent){let $=q.findIndex(pe=>pe.id===u);$!==-1&&$<W&&(W-=1)}let ne=et(o,u,W);if(ne&&ne.fromIndex!==ne.toIndex&&(Se?.(ne),be)){let $=Pt(ne.moved,ne.fromIndex,ne.toIndex,q);$.length>0&&be($,{node:ne.moved,type:"reorder"})}z(_)},[j,o,C,Re,se,be,Se]),gt=(0,p.useCallback)(()=>{z(_)},[]),Ne=(0,p.useCallback)((r,d,u)=>{if(H){let f=H(r);if(f.length===0)return;let b=y.nodeElementRefs.current.get(r.id);b&&ke({x:d,y:u,node:r,items:f,anchor:b});return}J?.({node:r,x:d,y:u})},[H,J,y.nodeElementRefs]),mt=(0,p.useCallback)(()=>{ke(null)},[]),xt=(0,p.useCallback)((r,d)=>{d.preventDefault(),Ne(r,d.clientX,d.clientY)},[Ne]),bt=(0,p.useCallback)((r,d)=>{d.stopPropagation();let u=d.currentTarget.getBoundingClientRect();Ne(r,u.left,u.bottom+4)},[Ne]),Ve=(0,p.useCallback)(r=>{let d=C.path(r);if(!d)return;let u=d.ancestorIds;y.setExpandedIds([...new Set([...y.expandedIds,...u])]),P.clearSearch(),ve({id:r,focus:!1})},[y,C,P.clearSearch]);(0,p.useImperativeHandle)(a,()=>({expandAll:y.expandAll,collapseAll:y.collapseAll,expandToDepth:y.expandToDepth,getExpandedIds:()=>y.expandedIds,getSelectedNode:()=>U?C.path(U)?.target:void 0,scrollToNode:Ve,locateNode:r=>{let d=[...o],u=new Set;for(let f=0;f<d.length;f++){let b=d[f];if(!(!b||u.has(b))){if(u.add(b),r(b)){let m=C.path(b.id);return m&&y.setExpandedIds([...new Set([...y.expandedIds,...m.ancestorIds])]),P.clearSearch(),fe(b.id),ve({id:b.id,focus:!1}),b}if(b.children?.length)for(let m of b.children)d.push(m)}}}}),[y,Ve,U,o,C,P.clearSearch]);let vt=(0,p.useMemo)(()=>({...S,...F!==void 0?{maxHeight:F}:{}}),[S,F]),Tt=[h.root,ie!=="default"?`pde-tree-variant-${ie}`:"",A].filter(Boolean).join(" ");return(0,s.jsxs)("div",{ref:xe,className:Tt,style:vt,"data-size":D,"data-theme":ze,children:[v&&(0,s.jsx)("div",{className:h.toolbar,children:v}),(g||c||x||O)&&(0,s.jsxs)("div",{className:h.searchRow,children:[g&&(0,s.jsxs)("div",{className:h.searchInputWrap,children:[(0,s.jsx)("span",{className:h.searchIcon,children:(0,s.jsx)(Rt,{})}),(0,s.jsx)("input",{className:h.searchInput,type:"search","aria-controls":De,placeholder:I,value:P.query,onChange:r=>lt(r.target.value),"aria-label":"Search tree"})]}),O,c&&(0,s.jsx)("button",{type:"button",className:h.iconButton,onClick:y.isAllExpanded?y.collapseAll:y.expandAll,title:y.isAllExpanded?"Collapse all":"Expand all","aria-label":y.isAllExpanded?"Collapse all":"Expand all",children:y.isAllExpanded?(0,s.jsx)(Be.MdUnfoldLess,{size:16,"aria-hidden":"true"}):(0,s.jsx)(Be.MdOutlineUnfoldMore,{size:16,"aria-hidden":"true"})}),x&&(0,s.jsx)("button",{type:"button",className:h.iconButton,onClick:M,title:"Refresh","aria-label":"Refresh",children:(0,s.jsx)(N.LuRefreshCw,{size:14,"aria-hidden":"true"})})]}),(0,s.jsx)("div",{ref:ce,className:h.treeContainer,"data-virtualized":te||void 0,onScroll:r=>{te&&w({top:r.currentTarget.scrollTop,height:r.currentTarget.clientHeight||400})},id:De,role:"tree",onKeyDown:st,"aria-label":"Tree navigation",children:P.filteredNodes.length===0?(0,s.jsx)("div",{className:h.emptyState,children:P.isSearching?"No matching results":"No items"}):(0,s.jsxs)(s.Fragment,{children:[te&&(0,s.jsx)("div",{role:"presentation",style:{height:ge*le}}),Ke.map(({node:r,depth:d,positionInSet:u,setSize:f})=>(0,s.jsx)(Ht,{node:r,depth:d,positionInSet:u,setSize:f,isFocused:r.id===it,onFocusNode:Qe,isExpanded:Te.has(r.id),isSelected:U===r.id,onToggle:y.toggleNode,onSelect:ct,onNodeRef:y.setNodeElementRef,searchQuery:P.deferredQuery,showIndentGuides:me,renderIcon:X,renderLabel:Y,renderSuffix:k,renderNode:K,draggable:ue,dragState:j,canDragNode:Ie(r),onDragStart:pt,onDragOver:ut,onDragLeave:ft,onDrop:ht,onDragEnd:gt,showContextMenuButton:!!(H||J),activeMenuNodeId:he?.node.id??null,onContextMenu:xt,onMoreClick:bt},r.id)),te&&(0,s.jsx)("div",{role:"presentation",style:{height:(R.length-ye)*le}})]})}),he&&(0,s.jsx)(rt,{state:he,onClose:mt},he.node.id)]})});0&&(module.exports={METHOD_LABEL_MAP,Tree,getMethodLabel,useTreeExpansion,useTreeSearch});
1
+ "use strict";var qe=Object.defineProperty;var wt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var It=Object.prototype.hasOwnProperty;var Nt=(t,e)=>{for(var a in e)qe(t,a,{get:e[a],enumerable:!0})},Mt=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of yt(e))!It.call(t,n)&&n!==a&&qe(t,n,{get:()=>e[n],enumerable:!(o=wt(e,n))||o.enumerable});return t};var St=t=>Mt(qe({},"__esModule",{value:!0}),t);var Gt={};Nt(Gt,{METHOD_LABEL_MAP:()=>Oe,Tree:()=>dt,getMethodLabel:()=>Me,useTreeExpansion:()=>Le,useTreeSearch:()=>Pe});module.exports=St(Gt);var p=require("react");function*$e(t,e=1/0){let a=new Set,o=[];for(let n=t.length-1;n>=0;n--)o.push({node:t[n],depth:1});for(;o.length;){let n=o.pop();if(a.has(n.node)||n.depth>e)continue;a.add(n.node),yield n;let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parent:n,depth:n.depth+1})}}function Fe(t,e){for(let{node:a}of $e(t))if(a.id===e)return a}function kt(t,e,a=[]){for(let o of $e(t)){if(o.node.id!==e)continue;let n=[],l=o;for(;l;)n.push(l.node),l=l.parent;n.reverse();let i=[...a,...n];return{nodes:i,target:o.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(T=>T.id)}}return null}var $t=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function je(t,e,a=()=>!0){let o=new Set,n=new Map,l=[{source:t,output:[],index:0}];for(;l.length;){let i=l[l.length-1];if(i.index<i.source.length){let c=i.source[i.index++];if(o.has(c))continue;if(n.has(c)){let x=n.get(c);x&&i.output.push(x)}else if(c.children?.length&&a(c))o.add(c),l.push({source:c.children,output:[],index:0,owner:c});else{let x=e(c);n.set(c,x),x&&i.output.push(x)}continue}l.pop();let T=i.source.length===i.output.length&&i.source.every((c,x)=>c===i.output[x])?i.source:i.output;if(!i.owner)return T;let h=i.owner,I=e(T===h.children?h:{...h,children:T});o.delete(h),n.set(h,I),I&&l[l.length-1].output.push(I)}return t}function Ue(t,e){let a=e.query.trim().toLowerCase();return a?je(t,o=>o.name.toLowerCase().includes(a)||o.id.toLowerCase().includes(a)||(e.keepAncestors??!0)&&o.children?.length?o:null):t}function Ee(t,e={}){let a=[];for(let{node:o,depth:n}of $e(t,e.maxDepth??1/0))n<=(e.maxDepth??1/0)&&(!(e.onlyWithChildren??!0)||o.children?.length)&&a.push(o.id);return a}function Ye(t){return Ee(t)}function Xe(t,e,a){return je(t,o=>o.id===e?a(o):o,o=>o.id!==e)}function Dt(t,e){return je(t,a=>a.id===e?null:a,a=>a.id!==e)}function Ze(t,e){return Math.max(0,Math.min(Number.isNaN(t)?0:Math.trunc(t),e))}function et(t,e,a){let o=kt(t,e);if(!o)return null;let n=o.parent?.children??t,l=n.indexOf(o.target),i=Ze(a,n.length-1),T={nodes:t,moved:o.target,parentId:o.parent?.id??null,fromIndex:l,toIndex:i};if(i===l)return T;let h=[...n];return h.splice(l,1),h.splice(i,0,o.target),{...T,nodes:o.parent?Xe(t,o.parent.id,I=>({...I,children:h})):h}}function We(t,e,a,o){let n=Fe(t,e);if(!n||a!==null&&(!Fe(t,a)||Fe([n],a)))return null;let l=Dt(t,e),i=T=>{let h=[...T];return h.splice(Ze(o??h.length,h.length),0,n),h};return a===null?i(l):Xe(l,a,T=>({...T,children:i(T.children??[])}))}var de=require("react"),tt=require("react-dom"),ae=require("react/jsx-runtime");function rt({state:t,onClose:e}){let a=(0,de.useRef)(null),[o,n]=(0,de.useState)(null),[l,i]=(0,de.useState)({left:t.x,top:t.y}),[T,h]=(0,de.useState)({}),I=t.anchor.closest("dialog")??t.anchor.ownerDocument.body;return(0,de.useLayoutEffect)(()=>{let c=t.anchor.closest(".pde-tree-root")??t.anchor,x=getComputedStyle(c),M={};for(let k=0;k<x.length;k++){let A=x.item(k);(A.startsWith("--tree-")||A.startsWith("--color-")||A.startsWith("--radius-")||A.startsWith("--font-")||A.startsWith("--shadow-"))&&(M[A]=x.getPropertyValue(A))}h(M);let v=a.current;if(!v)return;let O=()=>{let k=v.getBoundingClientRect();i({left:Math.max(8,Math.min(t.x,document.documentElement.clientWidth-k.width-8)),top:Math.max(8,Math.min(t.y,document.documentElement.clientHeight-k.height-8))})};O();let K=typeof ResizeObserver>"u"?void 0:new ResizeObserver(O);K?.observe(v),v.querySelector("button:not(:disabled)")?.focus();let Y=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()},X=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()};return document.addEventListener("pointerdown",Y),document.addEventListener("scroll",X,!0),window.addEventListener("resize",e),()=>{K?.disconnect(),document.removeEventListener("pointerdown",Y),document.removeEventListener("scroll",X,!0),window.removeEventListener("resize",e),v.contains(document.activeElement)&&t.anchor.isConnected&&t.anchor.focus({preventScroll:!0})}},[t,e]),(0,tt.createPortal)((0,ae.jsx)("div",{ref:a,className:"pde-tree-contextMenu",style:{...T,...l},role:"menu","aria-label":`Actions for ${t.node.name}`,tabIndex:-1,onKeyDown:c=>{let x=a.current;if(!x)return;let M=Array.from(x.querySelectorAll("button:not(:disabled)")),v=M.indexOf(document.activeElement);if(c.key==="Escape"||c.key==="Tab"){c.key==="Escape"&&c.preventDefault(),c.stopPropagation(),e();return}let O;if(c.key==="ArrowDown")O=(v+1)%M.length;else if(c.key==="ArrowUp")O=(v-1+M.length)%M.length;else if(c.key==="Home")O=0;else if(c.key==="End")O=M.length-1;else return;c.preventDefault(),M[O]?.focus()},children:t.items.map((c,x)=>(0,ae.jsxs)("div",{role:"presentation",children:[c.separator&&(0,ae.jsx)("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),(0,ae.jsxs)("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:c.disabled,className:`pde-tree-contextMenuItem${c.danger?" pde-tree-contextMenuItemDanger":""}${o===x?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(c.confirm&&o!==x){n(x);return}e(),c.onClick(t.node)},children:[c.icon&&(0,ae.jsx)("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:c.icon}),(0,ae.jsx)("span",{children:c.confirm&&o===x?c.confirmLabel??"Confirm?":c.label})]})]},`${c.label}-${x}`))}),I)}var L=require("react");function Le(t,e={}){let{defaultExpandedIds:a,defaultExpandDepth:o=1,onExpandedChange:n}=e,l=(0,L.useMemo)(()=>a!==void 0?[...a]:o<=1?[]:Ee(t,{maxDepth:o-1,onlyWithChildren:!0}),[]),[i,T]=(0,L.useState)(l),h=(0,L.useRef)(new Map),I=(0,L.useMemo)(()=>Ye(t),[t]),c=(0,L.useMemo)(()=>new Set(i),[i]),x=(0,L.useRef)(i);x.current=i;let M=(0,L.useMemo)(()=>I.length>0&&I.every(S=>c.has(S)),[I,c]),v=(0,L.useCallback)(S=>{x.current=S,T(S),n?.(S)},[n]),O=(0,L.useCallback)(S=>{let D=x.current,ie=D.includes(S)?D.filter(me=>me!==S):[...D,S];v(ie)},[v]),K=(0,L.useCallback)(()=>{v([...I])},[I,v]),Y=(0,L.useCallback)(()=>{v([])},[v]),X=(0,L.useCallback)(S=>{let D=Ee(t,{maxDepth:S,onlyWithChildren:!0});v(D)},[t,v]),k=(0,L.useCallback)((S,D)=>{D?h.current.set(S,D):h.current.delete(S)},[]),A=(0,L.useCallback)(S=>{let D=h.current.get(S);D&&D.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:i,setExpandedIds:v,toggleNode:O,expandAll:K,collapseAll:Y,expandToDepth:X,isAllExpanded:M,allBranchIds:I,setNodeElementRef:k,scrollToNode:A,nodeElementRefs:h}}var Q=require("react");function Pe(t){let[e,a]=(0,Q.useState)(""),o=(0,Q.useDeferredValue)(e),[n,l]=(0,Q.useState)(null),i=o.trim().length>0,T=(0,Q.useMemo)(()=>i?Ue(t,{query:o,keepAncestors:!0}):t,[t,o,i]),h=(0,Q.useCallback)((c,x)=>{let M=e.trim(),v=c.trim();!M&&v&&l(x),M&&!v&&l(null),a(c)},[e]),I=(0,Q.useCallback)(()=>{a(""),l(null)},[]);return{query:e,deferredQuery:o,isSearching:i,filteredNodes:T,expandedBeforeSearch:n,handleQueryChange:h,clearSearch:I}}function ot(t){let e=new Map,a=new Set,o=t.map(n=>({node:n,parentId:null})).reverse();for(;o.length;){let n=o.pop();if(a.has(n.node)||e.has(n.node.id))continue;a.add(n.node),e.set(n.node.id,n);let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parentId:n.node.id})}return{byId:e,path(n){let l=e.get(n);if(!l)return null;let i=[l.node],T=l.parentId;for(;T!==null;){let h=e.get(T);if(!h)break;i.push(h.node),T=h.parentId}return i.reverse(),{nodes:i,target:l.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(h=>h.id)}}}}var Oe={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function Me(t){let e=t.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Oe,e)?Oe[e]:e.slice(0,4).toUpperCase()}var N=require("react-icons/lu"),Be=require("react-icons/md"),s=require("react/jsx-runtime"),g={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Ct({expanded:t}){return(0,s.jsx)("span",{className:g.expandIcon,children:t?(0,s.jsx)(N.LuChevronDown,{size:14}):(0,s.jsx)(N.LuChevronRight,{size:14})})}function Rt(){return(0,s.jsx)(N.LuSearch,{size:14,"aria-hidden":"true"})}function Et(){return(0,s.jsx)(N.LuGripVertical,{size:14,"aria-hidden":"true"})}function Lt(){return(0,s.jsx)(N.LuEllipsisVertical,{size:14,"aria-hidden":"true"})}function nt(t){let a=t.metadata?.jsonPath;if(Array.isArray(a)&&a.length>0&&a.every(o=>typeof o=="string"||typeof o=="number"&&Number.isInteger(o)&&o>=0))return a}function Pt(t,e,a,o){let n=nt(t);if(!n||n.length===0)return[];let l=JSON.stringify(n.slice(0,-1));if(!o.every((T,h)=>{let I=nt(T);return I&&I[I.length-1]===h&&JSON.stringify(I.slice(0,-1))===l}))return[];let i=n.slice(0,-1);return[{op:"move",from:[...i,e],path:[...i,a]}]}function Ot({text:t,query:e}){if(!e)return(0,s.jsx)(s.Fragment,{children:t});let a=t.toLowerCase(),o=e.toLowerCase(),n=a.indexOf(o);return n===-1?(0,s.jsx)(s.Fragment,{children:t}):(0,s.jsxs)(s.Fragment,{children:[t.slice(0,n),(0,s.jsx)("span",{className:g.highlight,children:t.slice(n,n+e.length)}),t.slice(n+e.length)]})}var at={get:g.methodGet,post:g.methodPost,put:g.methodPut,patch:g.methodPatch,delete:g.methodDelete};function Bt({method:t}){let e=t.toLowerCase(),a=Object.prototype.hasOwnProperty.call(at,e)?at[e]:g.methodOther,o=Me(t);return(0,s.jsx)("span",{className:`${g.methodBadge} ${a}`,children:o})}var _={draggedId:null,dragOverId:null,dragOverPosition:null};function zt(t,e){if(t.isFocused!==e.isFocused||t.positionInSet!==e.positionInSet||t.setSize!==e.setSize||t.node!==e.node||t.depth!==e.depth||t.isExpanded!==e.isExpanded||t.isSelected!==e.isSelected||t.searchQuery!==e.searchQuery||t.showIndentGuides!==e.showIndentGuides||t.canDragNode!==e.canDragNode||t.draggable!==e.draggable||t.showContextMenuButton!==e.showContextMenuButton||t.activeMenuNodeId===t.node.id!=(e.activeMenuNodeId===e.node.id))return!1;let a=t.dragState.draggedId===t.node.id,o=e.dragState.draggedId===e.node.id;if(a!==o)return!1;let n=t.dragState.dragOverId===t.node.id,l=e.dragState.dragOverId===e.node.id;return!(n!==l||n&&l&&t.dragState.dragOverPosition!==e.dragState.dragOverPosition||t.renderIcon!==e.renderIcon||t.renderLabel!==e.renderLabel||t.renderSuffix!==e.renderSuffix||t.renderNode!==e.renderNode||t.onToggle!==e.onToggle||t.onSelect!==e.onSelect||t.onNodeRef!==e.onNodeRef||t.onDragStart!==e.onDragStart||t.onDragOver!==e.onDragOver||t.onDragLeave!==e.onDragLeave||t.onDrop!==e.onDrop||t.onDragEnd!==e.onDragEnd||t.onContextMenu!==e.onContextMenu||t.onMoreClick!==e.onMoreClick)}function At(t){let{node:e,depth:a,onToggle:o,onSelect:n,onNodeRef:l,searchQuery:i,showIndentGuides:T,renderIcon:h,renderLabel:I,renderSuffix:c,renderNode:x,draggable:M,dragState:v,canDragNode:O,onDragStart:K,onDragOver:Y,onDragLeave:X,onDrop:k,onDragEnd:A,showContextMenuButton:S,activeMenuNodeId:D,onContextMenu:ie,onMoreClick:me}=t,{isExpanded:F,isSelected:xe}=t,ue=(e.children?.length??0)>0,B=ue,Se=!ue,se=v.draggedId===e.id,V=v.dragOverId===e.id,Z=V?v.dragOverPosition:null,H=e.metadata,J=typeof H?.method=="string"?H.method:void 0,be=H?.deprecated===!0,ze=H?.required===!0,G=typeof H?.kind=="string"?H.kind:void 0,U={node:e,depth:a,isExpanded:F,isSelected:xe,isBranch:B,isLeaf:Se,isDragging:se,isDragOver:V,dragOverPosition:Z},fe=(0,p.useCallback)(()=>{B?o(e.id):n(e)},[B,e,n,o]),$=(0,p.useCallback)(w=>{w.target===w.currentTarget&&(w.key==="Enter"||w.key===" "?(w.preventDefault(),fe()):(w.key==="ArrowRight"&&B&&!F||w.key==="ArrowLeft"&&B&&F)&&(w.preventDefault(),w.stopPropagation(),o(e.id)))},[fe,B,F,e.id,o]),z=h?h(U):J?null:(0,s.jsx)("span",{className:g.nodeIcon,children:G==="section"&&H?.section==="components"?(0,s.jsx)(N.LuBraces,{size:14}):G==="section"&&H?.section==="webhooks"?(0,s.jsx)(N.LuZap,{size:14}):G==="schema"||G==="component"||G==="object"?(0,s.jsx)(N.LuBraces,{size:14}):G==="array"||G==="items"?(0,s.jsx)(N.LuList,{size:14}):B?F?(0,s.jsx)(N.LuFolderOpen,{size:14}):(0,s.jsx)(N.LuFolder,{size:14}):(0,s.jsx)("span",{className:g.primitiveDot})}),he=I?I(U):(0,s.jsx)("span",{className:`${g.nodeLabel} ${B?g.nodeLabelBranch:""} ${be?g.deprecatedLabel:""}`,children:(0,s.jsx)(Ot,{text:e.name,query:i})}),ke=c?c(U):null,ce=[g.nodeRow,B?g.branchControl:g.leafItem,xe?g.nodeRowSelected:"",se?g.nodeDragging:"",V&&Z==="before"?g.dropIndicatorBefore:"",V&&Z==="after"?g.dropIndicatorAfter:"",V&&Z==="child"?g.dropIndicatorChild:"",G?`pde-tree-kind-${G}`:""].filter(Boolean).join(" "),De=(0,p.useCallback)(w=>l(e.id,w),[e.id,l]),C=(0,s.jsxs)("div",{ref:De,className:ce,style:{paddingLeft:`${Math.min(a,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":B?F:void 0,"aria-label":J?`${Me(J)} ${e.name}`:e.name,"aria-selected":xe,"aria-level":a+1,"aria-posinset":t.positionInSet,"aria-setsize":t.setSize,"aria-grabbed":M&&O?se:void 0,tabIndex:t.isFocused?0:-1,onFocus:()=>t.onFocusNode(e.id),onClick:fe,onKeyDown:$,onContextMenu:S?w=>ie(e,w):void 0,onDragOver:M?w=>Y(e,w):void 0,onDragLeave:M?()=>X(e):void 0,onDrop:M?w=>k(e,w):void 0,children:[T&&a>1&&Array.from({length:Math.min(a-1,20)},(w,ee)=>(0,s.jsx)("span",{className:g.indentGuide,style:{left:`${(ee+1)*12+11}px`}},`guide-${ee}`)),M&&O?(0,s.jsx)("span",{className:g.dragHandle,style:{left:`${Math.min(a,20)*12+4}px`},draggable:!0,onDragStart:w=>K(e,w),onDragEnd:A,title:"Drag to reorder","aria-label":"Drag to reorder",children:(0,s.jsx)(Et,{})}):null,B?(0,s.jsx)(Ct,{expanded:F}):J&&(0,s.jsx)(Bt,{method:J}),z,he,ze&&(0,s.jsx)("span",{className:g.requiredDot,title:"Required"}),(0,s.jsx)("span",{className:g.nodeSuffix,children:ke}),S&&(0,s.jsx)("button",{type:"button",className:[g.moreButton,D===e.id?g.moreButtonActive:""].filter(Boolean).join(" "),onClick:w=>me(e,w),title:"More actions","aria-label":`More actions for ${e.name}`,"aria-haspopup":"menu","aria-expanded":D===e.id,tabIndex:-1,children:(0,s.jsx)(Lt,{})})]}),Ce=x?x(U,C):C;return(0,s.jsx)(s.Fragment,{children:Ce})}var Ht=(0,p.memo)(At,zt),dt=(0,p.forwardRef)(function(e,a){let{nodes:o,onSelect:n,onExpandedChange:l,defaultExpandedIds:i,defaultExpandDepth:T=1,searchable:h=!1,searchPlaceholder:I="Search...",showExpandAll:c=!1,showRefresh:x=!1,onRefresh:M,toolbar:v,searchRowExtra:O,renderNode:K,renderIcon:Y,renderLabel:X,renderSuffix:k,className:A,style:S,size:D="sm",variant:ie="default",showIndentGuides:me=!0,maxHeight:F,rootRef:xe,draggable:ue=!1,dragGroupKey:B,onReorder:Se,onMove:se,canDrag:V,canDrop:Z,contextMenuItems:H,onContextMenuOpen:J,onPatch:be,theme:ze,virtualized:G="auto"}=e,[U,fe]=(0,p.useState)(null),[$,z]=(0,p.useState)(_),[he,ke]=(0,p.useState)(null),ce=(0,p.useRef)(null),De=(0,p.useId)(),C=(0,p.useMemo)(()=>ot(o),[o]),[Ce,w]=(0,p.useState)({top:0,height:400}),[ee,ve]=(0,p.useState)(null),[Ae,Qe]=(0,p.useState)(null),y=Le(o,{defaultExpandedIds:i,defaultExpandDepth:T,onExpandedChange:l}),P=Pe(o),_e=P.isSearching?y.allBranchIds:P.expandedBeforeSearch??y.expandedIds,Te=(0,p.useMemo)(()=>new Set(_e),[_e]),R=(0,p.useMemo)(()=>{let r=[],d=new Set,u=P.filteredNodes.map((f,b,m)=>({node:f,depth:0,parentId:null,positionInSet:b+1,setSize:m.length})).reverse();for(;u.length;){let f=u.pop();if(!d.has(f.node.id)&&(d.add(f.node.id),r.push(f),Te.has(f.node.id))){let b=f.node.children??[];for(let m=b.length-1;m>=0;m--)u.push({node:b[m],depth:f.depth+1,parentId:f.node.id,positionInSet:m+1,setSize:b.length})}}return r},[P.filteredNodes,Te]),we=(0,p.useMemo)(()=>new Map(R.map((r,d)=>[r.node.id,d])),[R]),le=D==="xs"?24:D==="md"?32:28,te=G!==!1&&ie!=="doc"&&!K&&(G===!0||R.length>500),ge=te?Math.max(0,Math.min(Math.floor(Ce.top/le)-8,R.length-1)):0,ye=te?Math.min(R.length,ge+Math.ceil(Ce.height/le)+16):R.length,Ke=R.slice(ge,ye);(0,p.useEffect)(()=>{let r=ce.current;if(!r)return;let d=()=>w({top:r.scrollTop,height:r.clientHeight||400});d();let u=typeof ResizeObserver>"u"?void 0:new ResizeObserver(d);return u?.observe(r),()=>u?.disconnect()},[]),(0,p.useEffect)(()=>{if(!ee)return;let r=we.get(ee.id);if(r===void 0){ve(null);return}let d=ce.current;if(te&&d&&(r<ge||r>=ye)){let f=d.clientHeight||400,b=Math.min(r*le,Math.max(0,R.length*le-f));d.scrollTop=b,w(m=>({...m,top:d.scrollTop}));return}let u=y.nodeElementRefs.current.get(ee.id);ee.focus&&u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"nearest"}),ve(null)},[ee,we,te,le,ge,ye,R.length,y.nodeElementRefs]);let He=Ae===null?void 0:we.get(Ae),it=He!==void 0&&He>=ge&&He<ye?Ae:Ke[0]?.node.id,Ge=(0,p.useRef)({query:"",time:0}),st=r=>{if(!(r.target instanceof HTMLElement)||r.target.getAttribute("role")!=="treeitem")return;let d=we.get(r.target.dataset.nodeId??"");if(d===void 0)return;let u=R[d],f=d;if(r.key==="ArrowDown")f=Math.min(d+1,R.length-1);else if(r.key==="ArrowUp")f=Math.max(0,d-1);else if(r.key==="Home")f=0;else if(r.key==="End")f=R.length-1;else if(r.key==="ArrowRight"&&u.node.children?.length&&Te.has(u.node.id))f=Math.min(d+1,R.length-1);else if(r.key==="ArrowLeft"&&(!u.node.children?.length||!Te.has(u.node.id)))f=we.get(u.parentId??"")??d;else if(r.key==="ContextMenu"||r.shiftKey&&r.key==="F10"){let m=r.target.getBoundingClientRect();r.preventDefault(),Ne(u.node,m.left+24,m.bottom);return}else if(r.key.length===1&&r.key!==" "&&!r.ctrlKey&&!r.metaKey&&!r.altKey){let m=Date.now(),q=m-Ge.current.time<600?Ge.current.query+r.key.toLowerCase():r.key.toLowerCase();Ge.current={query:q,time:m};for(let E=1;E<=R.length;E++){let W=(d+E)%R.length;if(R[W].node.name.toLowerCase().startsWith(q)){f=W;break}}}else return;r.preventDefault();let b=R[f].node.id;Qe(b),ve({id:b,focus:!0})};(0,p.useEffect)(()=>{ce.current&&(ce.current.scrollTop=0),w(r=>({...r,top:0}))},[P.deferredQuery]);let ct=(0,p.useCallback)(r=>{fe(r.id),n?.(r)},[n]),lt=(0,p.useCallback)(r=>{!r.trim()&&P.expandedBeforeSearch&&y.setExpandedIds(P.expandedBeforeSearch),P.handleQueryChange(r,y.expandedIds)},[y.expandedIds,P]),Ie=(0,p.useCallback)(r=>!ue||r.metadata?.kind==="section"?!1:V?V(r):!0,[V,ue]),Re=(0,p.useCallback)((r,d,u)=>{if(r.id===d.id||!Ie(r)||C.path(d.id)?.ancestorIds.includes(r.id))return!1;if(B){let b=E=>{let W=C.path(E)?.nodes??[];for(let re=W.length-1;re>=0;re--){let oe=W[re]?.metadata;if(oe&&typeof oe=="object"&&Object.prototype.hasOwnProperty.call(oe,B))return oe[B]}},m=b(r.id),q=b(d.id);if(m!==void 0&&q!==void 0&&m!==q)return!1}return!Z||Z(r,d,u)},[Ie,Z,B,C]),pt=(0,p.useCallback)((r,d)=>{if(!Ie(r)){d.preventDefault();return}d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",r.id),z({draggedId:r.id,dragOverId:null,dragOverPosition:null})},[Ie]),ut=(0,p.useCallback)((r,d)=>{if(!$.draggedId||$.draggedId===r.id)return;d.dataTransfer.dropEffect="none";let u=d.currentTarget.getBoundingClientRect(),f=(d.clientY-u.top)/u.height,b=(r.children?.length??0)>0,m;b?f<.25?m="before":f>.75?m="after":m="child":m=f<.5?"before":"after";let q=C.byId.get($.draggedId)?.node;if(!q||!Re(q,r,m)){z(E=>E.dragOverId===null?E:{...E,dragOverId:null,dragOverPosition:null});return}d.preventDefault(),d.dataTransfer.dropEffect="move",z(E=>E.dragOverId===r.id&&E.dragOverPosition===m?E:{...E,dragOverId:r.id,dragOverPosition:m})},[Re,$.draggedId,C]),ft=(0,p.useCallback)(r=>{z(d=>d.dragOverId!==r.id?d:{...d,dragOverId:null,dragOverPosition:null})},[]),ht=(0,p.useCallback)((r,d)=>{d.preventDefault();let u=$.draggedId,f=$.dragOverPosition;if(!u||!f||u===r.id||$.dragOverId!==r.id){z(_);return}let b=C.byId.get(u)?.node;if(!b||!Re(b,r,f)){z(_);return}if(f==="child"){let pe=C.path(u)?.target;if(!pe){z(_);return}let Je=We(o,u,r.id);Je&&se?.(Je,pe,r.id),z(_);return}let m=C.path(r.id);if(!m){z(_);return}let q=m.parent?.children??o,E=q.findIndex(j=>j.id===r.id);if(E===-1){z(_);return}let W=f==="before"?E:E+1,re=C.path(u),oe=m.parent?.id??null;if((re?.parent?.id??null)!==oe){let j=re?.target,pe=We(o,u,oe,W);pe&&j&&se?.(pe,j,oe),z(_);return}if(re&&re.parent===m.parent){let j=q.findIndex(pe=>pe.id===u);j!==-1&&j<W&&(W-=1)}let ne=et(o,u,W);if(ne&&ne.fromIndex!==ne.toIndex&&(Se?.(ne),be)){let j=Pt(ne.moved,ne.fromIndex,ne.toIndex,q);j.length>0&&be(j,{node:ne.moved,type:"reorder"})}z(_)},[$,o,C,Re,se,be,Se]),gt=(0,p.useCallback)(()=>{z(_)},[]),Ne=(0,p.useCallback)((r,d,u)=>{if(H){let f=H(r);if(f.length===0)return;let b=y.nodeElementRefs.current.get(r.id);b&&ke({x:d,y:u,node:r,items:f,anchor:b});return}J?.({node:r,x:d,y:u})},[H,J,y.nodeElementRefs]),mt=(0,p.useCallback)(()=>{ke(null)},[]),xt=(0,p.useCallback)((r,d)=>{d.preventDefault(),Ne(r,d.clientX,d.clientY)},[Ne]),bt=(0,p.useCallback)((r,d)=>{d.stopPropagation();let u=d.currentTarget.getBoundingClientRect();Ne(r,u.left,u.bottom+4)},[Ne]),Ve=(0,p.useCallback)(r=>{let d=C.path(r);if(!d)return;let u=d.ancestorIds;y.setExpandedIds([...new Set([...y.expandedIds,...u])]),P.clearSearch(),ve({id:r,focus:!1})},[y,C,P.clearSearch]);(0,p.useImperativeHandle)(a,()=>({expandAll:y.expandAll,collapseAll:y.collapseAll,expandToDepth:y.expandToDepth,getExpandedIds:()=>y.expandedIds,getSelectedNode:()=>U?C.path(U)?.target:void 0,scrollToNode:Ve,locateNode:r=>{let d=[...o],u=new Set;for(let f=0;f<d.length;f++){let b=d[f];if(!(!b||u.has(b))){if(u.add(b),r(b)){let m=C.path(b.id);return m&&y.setExpandedIds([...new Set([...y.expandedIds,...m.ancestorIds])]),P.clearSearch(),fe(b.id),ve({id:b.id,focus:!1}),b}if(b.children?.length)for(let m of b.children)d.push(m)}}}}),[y,Ve,U,o,C,P.clearSearch]);let vt=(0,p.useMemo)(()=>({...S,...F!==void 0?{maxHeight:F}:{}}),[S,F]),Tt=[g.root,ie!=="default"?`pde-tree-variant-${ie}`:"",A].filter(Boolean).join(" ");return(0,s.jsxs)("div",{ref:xe,className:Tt,style:vt,"data-size":D,"data-theme":ze,children:[v&&(0,s.jsx)("div",{className:g.toolbar,children:v}),(h||c||x||O)&&(0,s.jsxs)("div",{className:g.searchRow,children:[h&&(0,s.jsxs)("div",{className:g.searchInputWrap,children:[(0,s.jsx)("span",{className:g.searchIcon,children:(0,s.jsx)(Rt,{})}),(0,s.jsx)("input",{className:g.searchInput,type:"search","aria-controls":De,placeholder:I,value:P.query,onChange:r=>lt(r.target.value),"aria-label":"Search tree"})]}),O,c&&(0,s.jsx)("button",{type:"button",className:g.iconButton,onClick:y.isAllExpanded?y.collapseAll:y.expandAll,title:y.isAllExpanded?"Collapse all":"Expand all","aria-label":y.isAllExpanded?"Collapse all":"Expand all",children:y.isAllExpanded?(0,s.jsx)(Be.MdUnfoldLess,{size:16,"aria-hidden":"true"}):(0,s.jsx)(Be.MdOutlineUnfoldMore,{size:16,"aria-hidden":"true"})}),x&&(0,s.jsx)("button",{type:"button",className:g.iconButton,onClick:M,title:"Refresh","aria-label":"Refresh",children:(0,s.jsx)(N.LuRefreshCw,{size:14,"aria-hidden":"true"})})]}),(0,s.jsx)("div",{ref:ce,className:g.treeContainer,"data-virtualized":te||void 0,onScroll:r=>{te&&w({top:r.currentTarget.scrollTop,height:r.currentTarget.clientHeight||400})},id:De,role:"tree",onKeyDown:st,"aria-label":"Tree navigation",children:P.filteredNodes.length===0?(0,s.jsx)("div",{className:g.emptyState,children:P.isSearching?"No matching results":"No items"}):(0,s.jsxs)(s.Fragment,{children:[te&&(0,s.jsx)("div",{role:"presentation",style:{height:ge*le}}),Ke.map(({node:r,depth:d,positionInSet:u,setSize:f})=>(0,s.jsx)(Ht,{node:r,depth:d,positionInSet:u,setSize:f,isFocused:r.id===it,onFocusNode:Qe,isExpanded:Te.has(r.id),isSelected:U===r.id,onToggle:y.toggleNode,onSelect:ct,onNodeRef:y.setNodeElementRef,searchQuery:P.deferredQuery,showIndentGuides:me,renderIcon:Y,renderLabel:X,renderSuffix:k,renderNode:K,draggable:ue,dragState:$,canDragNode:Ie(r),onDragStart:pt,onDragOver:ut,onDragLeave:ft,onDrop:ht,onDragEnd:gt,showContextMenuButton:!!(H||J),activeMenuNodeId:he?.node.id??null,onContextMenu:xt,onMoreClick:bt},r.id)),te&&(0,s.jsx)("div",{role:"presentation",style:{height:(R.length-ye)*le}})]})}),he&&(0,s.jsx)(rt,{state:he,onClose:mt},he.node.id)]})});0&&(module.exports={METHOD_LABEL_MAP,Tree,getMethodLabel,useTreeExpansion,useTreeSearch});
@@ -1 +1 @@
1
- .pde-tree-root{--tree-color-accent: var(--color-accent, #f28c28);--tree-color-accent-active: var(--color-accent-active, #c9640d);--tree-color-accent-bg: var(--color-accent-bg, #fff8ef);--tree-color-accent-bg-soft: var(--color-accent-bg-soft, #f0f5ff);--tree-color-border-default: var(--color-border-default, #e0e4e8);--tree-color-border-strong: var(--color-border-strong, #ccd2d8);--tree-color-border-subtle: var(--color-border-subtle, #eceff1);--tree-color-danger: var(--color-danger, #FF0000);--tree-color-danger-soft: var(--color-danger-soft, #fff2f1);--tree-color-dynamic: var(--color-dynamic, #4d7ec8);--tree-color-focus-ring: var(--color-focus-ring, rgba(242, 140, 40, .28));--tree-color-info: var(--color-info, #4f79bf);--tree-color-info-soft: var(--color-info-soft, #f0f5ff);--tree-color-success: var(--color-success, #428961);--tree-color-success-soft: var(--color-success-soft, #eff8f2);--tree-color-surface: var(--color-surface, #ffffff);--tree-color-surface-hover: var(--color-surface-hover, #f4f5f6);--tree-color-surface-selected: var(--color-surface-selected, #eef0f2);--tree-color-surface-subtle: var(--color-surface-subtle, #f8f9fa);--tree-color-text-accent: var(--color-text-accent, #d97818);--tree-color-text-disabled: var(--color-text-disabled, #c2c6cc);--tree-color-text-primary: var(--color-text-primary, #26282b);--tree-color-text-secondary: var(--color-text-secondary, #6f747c);--tree-color-text-tertiary: var(--color-text-tertiary, #989da5);--tree-color-warning: var(--color-warning, #d98a22);--tree-color-warning-soft: var(--color-warning-soft, #fff8e8);--tree-shadow-lg: var(--shadow-lg, 0 16px 40px rgba(28, 32, 36, .1), 0 4px 12px rgba(28, 32, 36, .05))}.pde-tree-root[data-theme=dark],[data-theme=dark] .pde-tree-root:not([data-theme=light]){--tree-color-accent: var(--color-accent, #f4a04a);--tree-color-accent-active: var(--color-accent-active, #df7d20);--tree-color-accent-bg: var(--color-accent-bg, #2d2419);--tree-color-accent-bg-soft: var(--color-accent-bg-soft, #1d304f);--tree-color-border-default: var(--color-border-default, #3b4149);--tree-color-border-strong: var(--color-border-strong, #525a65);--tree-color-border-subtle: var(--color-border-subtle, #2d3239);--tree-color-danger: var(--color-danger, #ef7c7c);--tree-color-danger-soft: var(--color-danger-soft, #402020);--tree-color-dynamic: var(--color-dynamic, #7eb0f3);--tree-color-focus-ring: var(--color-focus-ring, rgba(244, 160, 74, .36));--tree-color-info: var(--color-info, #82aef2);--tree-color-info-soft: var(--color-info-soft, #1d304f);--tree-color-success: var(--color-success, #67bd89);--tree-color-success-soft: var(--color-success-soft, #1c3928);--tree-color-surface: var(--color-surface, #1f2125);--tree-color-surface-hover: var(--color-surface-hover, #2b2f35);--tree-color-surface-selected: var(--color-surface-selected, #343941);--tree-color-surface-subtle: var(--color-surface-subtle, #25282d);--tree-color-text-accent: var(--color-text-accent, #ffc98c);--tree-color-text-disabled: var(--color-text-disabled, #626b76);--tree-color-text-primary: var(--color-text-primary, #edf0f3);--tree-color-text-secondary: var(--color-text-secondary, #b8bec7);--tree-color-text-tertiary: var(--color-text-tertiary, #89919c);--tree-color-warning: var(--color-warning, #e7b45c);--tree-color-warning-soft: var(--color-warning-soft, #382f19);--tree-shadow-lg: var(--shadow-lg, 0 18px 44px rgba(0, 0, 0, .42), 0 6px 16px rgba(0, 0, 0, .22))}.pde-tree-root{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;font-family:var(--font-family-ui, Inter, ui-sans-serif, system-ui, sans-serif);font-size:var(--font-size-sm, 13px);line-height:var(--line-height-normal, 20px);color:var(--tree-color-text-primary, #26282b);background:var(--tree-color-surface, #ffffff)}.pde-tree-toolbar{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--tree-color-border-subtle, #eceff1);flex-shrink:0}.pde-tree-searchRow{display:flex;align-items:center;padding:6px 8px;border-bottom:1px solid var(--tree-color-border-subtle, #eceff1);flex-shrink:0;gap:6px}.pde-tree-searchInputWrap{position:relative;flex:1;min-width:0;display:flex;align-items:center}.pde-tree-searchIcon{position:absolute;left:8px;display:flex;align-items:center;color:var(--tree-color-text-tertiary, #989da5);pointer-events:none;z-index:1}.pde-tree-searchInput{width:100%;height:28px;padding:0 8px 0 28px;font-size:var(--font-size-sm, 13px);font-family:inherit;color:var(--tree-color-text-primary, #26282b);background:var(--tree-color-surface-subtle, #f8f9fa);border:1px solid var(--tree-color-border-default, #e0e4e8);border-radius:var(--radius-sm, 4px);outline:none;transition:border-color var(--transition-fast, .14s ease),box-shadow var(--transition-fast, .14s ease),background var(--transition-fast, .14s ease)}.pde-tree-searchInput:hover{border-color:var(--tree-color-border-strong, #ccd2d8)}.pde-tree-searchInput:focus{border-color:var(--tree-color-accent, #f28c28);box-shadow:0 0 0 2px var(--tree-color-focus-ring, rgba(242, 140, 40, .28));background:var(--tree-color-surface, #ffffff)}.pde-tree-searchInput::placeholder{color:var(--tree-color-text-tertiary, #989da5)}.pde-tree-iconButton{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;font-size:var(--icon-size-sm, 14px);color:var(--tree-color-text-secondary, #6f747c);background:transparent;border:none;border-radius:var(--radius-sm, 4px);cursor:pointer;transition:color var(--transition-fast, .14s ease);flex-shrink:0}.pde-tree-iconButton:hover:not(:disabled){color:var(--tree-color-accent, #f28c28)}.pde-tree-iconButton:active:not(:disabled){color:var(--tree-color-accent-active, #c9640d)}.pde-tree-iconButton:disabled{opacity:.35;cursor:not-allowed}.pde-tree-treeContainer{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 0}.pde-tree-treeContainer:focus{outline:none}.pde-tree-treeContainer::-webkit-scrollbar{width:6px}.pde-tree-treeContainer::-webkit-scrollbar-track{background:transparent}.pde-tree-treeContainer::-webkit-scrollbar-thumb{background:var(--tree-color-border-default, #e0e4e8);border-radius:3px}.pde-tree-treeContainer::-webkit-scrollbar-thumb:hover{background:var(--tree-color-border-strong, #ccd2d8)}.pde-tree-indentGuide{position:absolute;top:0;bottom:0;width:1px;background:var(--tree-color-border-subtle, #eceff1);pointer-events:none}.pde-tree-nodeRow{display:flex;align-items:center;gap:4px;height:28px;padding:0 8px;cursor:default;user-select:none;white-space:nowrap;position:relative;outline:none;transition:background var(--transition-fast, .14s ease)}.pde-tree-nodeRow:hover{background:var(--tree-color-surface-hover, #f4f5f6)}.pde-tree-nodeRowSelected{background:var(--tree-color-surface-selected, #eef0f2)}.pde-tree-nodeRowSelected:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--tree-color-accent, #f28c28);border-radius:1px}.pde-tree-nodeRowSelected:hover{background:var(--tree-color-surface-selected, #eef0f2)}.pde-tree-nodeRowSelected .pde-tree-nodeLabel{font-weight:var(--font-weight-medium, 500);color:var(--tree-color-text-primary, #26282b)}.pde-tree-branchControl,.pde-tree-leafItem{cursor:pointer}.pde-tree-expandIcon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;color:var(--tree-color-text-tertiary, #989da5)}.pde-tree-expandIconPlaceholder{width:14px;flex-shrink:0}.pde-tree-dragHandle{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;color:var(--tree-color-text-tertiary, #989da5);cursor:grab;opacity:0;transition:opacity var(--transition-fast, .14s ease),color var(--transition-fast, .14s ease)}.pde-tree-dragHandle:hover{color:var(--tree-color-text-primary, #26282b);opacity:1}.pde-tree-dragHandle:active{cursor:grabbing}.pde-tree-dragHandleDisabled{cursor:not-allowed;opacity:.2!important}.pde-tree-nodeRow:hover .pde-tree-dragHandle{opacity:.6}.pde-tree-nodeRow:hover .pde-tree-dragHandle:hover{opacity:1}.pde-tree-nodeIcon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;color:var(--tree-color-text-tertiary, #989da5)}.pde-tree-primitiveDot{width:5px;height:5px;border-radius:50%;background:currentColor;display:inline-block}.pde-tree-nodeLabel{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-regular, 400);font-size:var(--font-size-sm, 13px)}.pde-tree-nodeLabelBranch{font-weight:var(--font-weight-medium, 500)}.pde-tree-deprecatedLabel{text-decoration:line-through;color:var(--tree-color-text-tertiary, #989da5)}.pde-tree-nodeSuffix{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.pde-tree-countBadge{margin-left:auto;font-size:10px;font-weight:var(--font-weight-medium, 500);color:var(--tree-color-text-tertiary, #989da5);background:var(--tree-color-surface-subtle, #f8f9fa);border:1px solid var(--tree-color-border-subtle, #eceff1);border-radius:var(--radius-full, 9999px);padding:0 5px;line-height:14px;min-width:16px;text-align:center}.pde-tree-methodBadge{display:inline-flex;align-items:center;justify-content:center;width:40px;height:18px;font-size:10px;font-weight:var(--font-weight-semibold, 600);letter-spacing:.3px;border-radius:var(--radius-xs, 3px);flex-shrink:0;margin-right:6px;font-family:var(--font-family-ui, Inter, ui-sans-serif, system-ui, sans-serif)}.pde-tree-methodGet{color:var(--tree-color-success, #428961);background:var(--tree-color-success-soft, #eff8f2)}.pde-tree-methodPost{color:var(--tree-color-info, #4f79bf);background:var(--tree-color-info-soft, #f0f5ff)}.pde-tree-methodPut{color:var(--tree-color-warning, #d98a22);background:var(--tree-color-warning-soft, #fff8e8)}.pde-tree-methodPatch{color:var(--tree-color-dynamic, #4d7ec8);background:var(--tree-color-accent-bg-soft, #f0f5ff)}.pde-tree-methodDelete{color:var(--tree-color-danger, #c95555);background:var(--tree-color-danger-soft, #fff2f1)}.pde-tree-methodOther{color:var(--tree-color-text-secondary, #6f747c);background:var(--tree-color-surface-subtle, #f8f9fa)}.pde-tree-requiredDot{width:4px;height:4px;border-radius:50%;background:var(--tree-color-danger, #c95555);flex-shrink:0}.pde-tree-highlight{background:var(--tree-color-accent-bg, #fff8ef);color:var(--tree-color-text-accent, #d97818);border-radius:2px;padding:0 1px;font-weight:var(--font-weight-medium, 500)}.pde-tree-emptyState{display:flex;align-items:center;justify-content:center;padding:24px 16px;color:var(--tree-color-text-tertiary, #989da5);font-size:var(--font-size-xs, 12px)}.pde-tree-nodeDragging{opacity:.35}.pde-tree-dropIndicatorBefore:before{content:"";position:absolute;top:0;left:8px;right:8px;height:2px;background:var(--tree-color-accent, #f28c28);border-radius:1px;pointer-events:none;z-index:2}.pde-tree-dropIndicatorAfter:after{content:"";position:absolute;bottom:0;left:8px;right:8px;height:2px;background:var(--tree-color-accent, #f28c28);border-radius:1px;pointer-events:none;z-index:2}.pde-tree-dropIndicatorChild{background:var(--tree-color-accent-bg, #fff8ef)!important;box-shadow:inset 0 0 0 1px var(--tree-color-accent, #f28c28);border-radius:var(--radius-sm, 4px)}.pde-tree-moreButton{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;flex-shrink:0;color:var(--tree-color-text-tertiary, #989da5);background:transparent;border:none;border-radius:var(--radius-xs, 3px);cursor:pointer;opacity:0;transition:opacity var(--transition-fast, .14s ease),color var(--transition-fast, .14s ease)}.pde-tree-nodeRow:hover .pde-tree-moreButton{opacity:1}.pde-tree-moreButton:hover{color:var(--tree-color-accent, #f28c28)}.pde-tree-moreButtonActive{opacity:1!important;color:var(--tree-color-accent, #f28c28)}.pde-tree-contextMenu{position:fixed;z-index:1000;width:min(248px,calc(100vw - 16px));min-width:0;max-width:calc(100vw - 16px);padding:4px;background:var(--tree-color-surface, #ffffff);border:1px solid var(--tree-color-border-default, #e0e4e8);border-radius:var(--radius-md, 6px);box-shadow:var(--tree-shadow-lg, 0 16px 40px rgba(28, 32, 36, .1));font-size:var(--font-size-xs, 12px);font-family:inherit;color:var(--tree-color-text-primary);max-height:calc(100dvh - 16px);overflow:auto;overscroll-behavior:contain}.pde-tree-contextMenuItem{display:flex;align-items:center;gap:8px;width:100%;height:30px;padding:0 8px;text-align:left;font-size:var(--font-size-sm, 13px);font-family:inherit;color:var(--tree-color-text-primary, #26282b);background:transparent;border:none;border-radius:var(--radius-xs, 3px);cursor:pointer;transition:background var(--transition-fast, .14s ease);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pde-tree-contextMenuItem:hover:not(:disabled){background:var(--tree-color-surface-hover, #f4f5f6)}.pde-tree-contextMenuItem:disabled{color:var(--tree-color-text-disabled, #c2c6cc);cursor:not-allowed}.pde-tree-contextMenuItemDanger,.pde-tree-contextMenuItemDanger .pde-tree-contextMenuIcon{color:var(--tree-color-danger, #c95555)}.pde-tree-contextMenuItemDanger:hover:not(:disabled){background:var(--tree-color-danger-soft, #fff2f1)}.pde-tree-contextMenuItemConfirming{background:var(--tree-color-danger-soft, #fff2f1);color:var(--tree-color-danger, #c95555);font-weight:var(--font-weight-semibold, 600)}.pde-tree-contextMenuItemConfirming:hover:not(:disabled){background:var(--tree-color-danger-soft, #fff2f1);color:var(--tree-color-danger, #c95555)}.pde-tree-contextMenuItemConfirming .pde-tree-contextMenuIcon{color:var(--tree-color-danger, #c95555)}.pde-tree-contextMenuItem:focus{outline:none;box-shadow:none}.pde-tree-contextMenuIcon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;color:var(--tree-color-text-secondary, #6f747c)}.pde-tree-contextMenuSeparator{height:1px;margin:4px 0;background:var(--tree-color-border-subtle, #eceff1)}.pde-tree-variant-doc{background:var(--tree-color-surface, #ffffff);font-size:var(--font-size-sm, 13px)}.pde-tree-variant-doc .pde-tree-nodeRow{height:28px;border-radius:0;padding:0 12px;position:relative}.pde-tree-variant-doc .pde-tree-nodeRow:hover,.pde-tree-variant-doc .pde-tree-nodeRowSelected{background:var(--tree-color-surface-hover, #f4f5f6)}.pde-tree-variant-doc .pde-tree-nodeRowSelected:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--tree-color-accent, #f28c28);border-radius:1px}.pde-tree-variant-doc .pde-tree-nodeLabelBranch{font-size:11px;font-weight:var(--font-weight-semibold, 600);letter-spacing:.6px;text-transform:uppercase;color:var(--tree-color-text-tertiary, #989da5)}.pde-tree-variant-doc .pde-tree-nodeRow:has(.pde-tree-nodeLabelBranch){padding-top:10px;padding-bottom:2px;height:auto;min-height:28px}.pde-tree-variant-doc .pde-tree-leafItem .pde-tree-nodeLabel{font-weight:var(--font-weight-regular, 400);color:var(--tree-color-text-secondary, #6f747c);transition:color var(--transition-fast, .14s ease)}.pde-tree-variant-doc .pde-tree-nodeRow:hover .pde-tree-nodeLabel{color:var(--tree-color-text-primary, #26282b)}.pde-tree-variant-doc .pde-tree-nodeRowSelected .pde-tree-nodeLabel{color:var(--tree-color-text-primary, #26282b);font-weight:var(--font-weight-medium, 500)}.pde-tree-variant-doc .pde-tree-dragHandle{display:none}.pde-tree-variant-doc .pde-tree-methodBadge{font-size:10px;font-weight:var(--font-weight-semibold, 600);width:38px;height:18px;margin-right:4px}.pde-tree-variant-doc .pde-tree-indentGuide{background:var(--tree-color-border-subtle, #eceff1);opacity:.6}.pde-tree-variant-doc .pde-tree-searchRow{padding:8px 12px;border-bottom:1px solid var(--tree-color-border-subtle, #eceff1)}.pde-tree-variant-doc .pde-tree-searchInput{background:var(--tree-color-surface-subtle, #f8f9fa);border:1px solid transparent;height:30px}.pde-tree-variant-doc .pde-tree-searchInput:focus{background:var(--tree-color-surface, #ffffff);border-color:var(--tree-color-border-default, #e0e4e8)}.pde-tree-variant-api{font-size:var(--font-size-sm, 13px)}.pde-tree-variant-api .pde-tree-nodeRow{height:28px}.pde-tree-variant-api .pde-tree-methodBadge{min-width:34px;font-size:10px}.pde-tree-kind-section{height:32px!important}.pde-tree-kind-section .pde-tree-nodeLabel{font-size:11px;font-weight:var(--font-weight-semibold, 600);text-transform:uppercase;letter-spacing:.06em;color:var(--tree-color-text-secondary, #6f747c)}.pde-tree-kind-section .pde-tree-nodeIcon{color:var(--tree-color-accent, #f28c28)}.pde-tree-kind-section.pde-tree-nodeRowSelected .pde-tree-nodeLabel{color:var(--tree-color-text-primary, #26282b)}.pde-tree-variant-schema{font-size:var(--font-size-sm, 13px)}.pde-tree-variant-schema .pde-tree-nodeRow{height:28px}.pde-tree-variant-schema .pde-tree-requiredDot{width:5px;height:5px}.pde-tree-variant-schema .pde-tree-branchControl .pde-tree-nodeIcon{color:var(--tree-color-warning, #d98a22)}.pde-tree-variant-schema .pde-tree-leafItem .pde-tree-nodeIcon{color:var(--tree-color-info, #4f79bf)}.pde-tree-root{min-width:0;--tree-row-height: 28px}.pde-tree-root,.pde-tree-root *,.pde-tree-contextMenu,.pde-tree-contextMenu *{box-sizing:border-box}.pde-tree-root[data-size=xs]{--tree-row-height: 24px}.pde-tree-root[data-size=md]{--tree-row-height: 32px}.pde-tree-treeContainer{padding:4px 6px;overscroll-behavior:contain}.pde-tree-root .pde-tree-nodeRow{border-radius:var(--radius-md, 6px);min-width:0}.pde-tree-treeContainer[data-virtualized=true] .pde-tree-nodeRow{height:var(--tree-row-height)!important;min-height:var(--tree-row-height);margin:0;padding-block:0}.pde-tree-root .pde-tree-searchRow{background:transparent;padding:8px;gap:6px}.pde-tree-root .pde-tree-searchInput{height:var(--control-height-sm, 28px);border-radius:var(--radius-md, 6px)}.pde-tree-root .pde-tree-iconButton{width:var(--control-height-sm, 28px);height:var(--control-height-sm, 28px);border-radius:var(--radius-md, 6px)}.pde-tree-iconButton:hover:not(:disabled),.pde-tree-moreButton:hover{background:var(--tree-color-surface-hover);color:var(--tree-color-text-primary)}.pde-tree-root :is(button,input,[role=treeitem]):focus-visible{outline:2px solid var(--tree-color-accent);outline-offset:-2px}.pde-tree-nodeRow:focus-within .pde-tree-moreButton,.pde-tree-moreButton:focus-visible{opacity:1}.pde-tree-root .pde-tree-moreButton{width:24px;height:24px;border-radius:var(--radius-sm, 4px)}.pde-tree-root .pde-tree-nodeSuffix{max-width:35%;overflow:hidden}.pde-tree-contextMenu{font-family:var(--font-family-ui, Inter, ui-sans-serif, system-ui, sans-serif);border-radius:var(--radius-lg, 8px)}.pde-tree-contextMenuItem{height:auto;min-height:32px;white-space:normal;padding:6px 9px;line-height:20px}.pde-tree-contextMenuItem>span:last-child{min-width:0;overflow-wrap:anywhere}.pde-tree-contextMenuItem:focus-visible{outline:2px solid var(--tree-color-accent);outline-offset:-2px;background:var(--tree-color-surface-hover)}.pde-tree-treeContainer,.pde-tree-contextMenu{scrollbar-width:thin;scrollbar-color:transparent transparent}.pde-tree-treeContainer::-webkit-scrollbar,.pde-tree-contextMenu::-webkit-scrollbar{width:6px;height:6px}.pde-tree-treeContainer::-webkit-scrollbar-thumb,.pde-tree-contextMenu::-webkit-scrollbar-thumb{background:transparent;border-radius:9999px}.pde-tree-treeContainer:hover,.pde-tree-treeContainer:focus-within,.pde-tree-contextMenu:hover,.pde-tree-contextMenu:focus-within{scrollbar-color:var(--tree-color-border-strong) transparent}.pde-tree-treeContainer:hover::-webkit-scrollbar-thumb,.pde-tree-treeContainer:focus-within::-webkit-scrollbar-thumb,.pde-tree-contextMenu:hover::-webkit-scrollbar-thumb,.pde-tree-contextMenu:focus-within::-webkit-scrollbar-thumb{background:var(--tree-color-border-strong)}@media(hover:none){.pde-tree-moreButton,.pde-tree-dragHandle{opacity:1}.pde-tree-treeContainer,.pde-tree-contextMenu{scrollbar-color:var(--tree-color-border-strong) transparent}}@media(prefers-reduced-motion:reduce){.pde-tree-root *,.pde-tree-contextMenu *{transition:none;animation:none;scroll-behavior:auto}}
1
+ .pde-tree-root{--tree-color-accent: var(--color-accent, #f28c28);--tree-color-accent-active: var(--color-accent-active, #c9640d);--tree-color-accent-bg: var(--color-accent-bg, #fff8ef);--tree-color-accent-bg-soft: var(--color-accent-bg-soft, #f0f5ff);--tree-color-border-default: var(--color-border-default, #e0e4e8);--tree-color-border-strong: var(--color-border-strong, #ccd2d8);--tree-color-border-subtle: var(--color-border-subtle, #eceff1);--tree-color-danger: var(--color-danger, #FF0000);--tree-color-danger-soft: var(--color-danger-soft, #fff2f1);--tree-color-dynamic: var(--color-dynamic, #4d7ec8);--tree-color-focus-ring: var(--color-focus-ring, rgba(122, 131, 143, .3));--tree-color-info: var(--color-info, #4f79bf);--tree-color-info-soft: var(--color-info-soft, #f0f5ff);--tree-color-success: var(--color-success, #428961);--tree-color-success-soft: var(--color-success-soft, #eff8f2);--tree-color-surface: var(--color-surface, #ffffff);--tree-color-surface-hover: var(--color-surface-hover, #f4f5f6);--tree-color-surface-selected: var(--color-surface-selected, #eef0f2);--tree-color-surface-subtle: var(--color-surface-subtle, #f8f9fa);--tree-color-text-accent: var(--color-text-accent, #d97818);--tree-color-text-disabled: var(--color-text-disabled, #c2c6cc);--tree-color-text-primary: var(--color-text-primary, #26282b);--tree-color-text-secondary: var(--color-text-secondary, #6f747c);--tree-color-text-tertiary: var(--color-text-tertiary, #989da5);--tree-color-warning: var(--color-warning, #d98a22);--tree-color-warning-soft: var(--color-warning-soft, #fff8e8);--tree-shadow-lg: var(--shadow-lg, 0 16px 40px rgba(28, 32, 36, .1), 0 4px 12px rgba(28, 32, 36, .05))}.pde-tree-root[data-theme=dark],[data-theme=dark] .pde-tree-root:not([data-theme=light]){--tree-color-accent: var(--color-accent, #f4a04a);--tree-color-accent-active: var(--color-accent-active, #df7d20);--tree-color-accent-bg: var(--color-accent-bg, #2d2419);--tree-color-accent-bg-soft: var(--color-accent-bg-soft, #1d304f);--tree-color-border-default: var(--color-border-default, #3b4149);--tree-color-border-strong: var(--color-border-strong, #525a65);--tree-color-border-subtle: var(--color-border-subtle, #2d3239);--tree-color-danger: var(--color-danger, #ef7c7c);--tree-color-danger-soft: var(--color-danger-soft, #402020);--tree-color-dynamic: var(--color-dynamic, #7eb0f3);--tree-color-focus-ring: var(--color-focus-ring, rgba(150, 158, 170, .38));--tree-color-info: var(--color-info, #82aef2);--tree-color-info-soft: var(--color-info-soft, #1d304f);--tree-color-success: var(--color-success, #67bd89);--tree-color-success-soft: var(--color-success-soft, #1c3928);--tree-color-surface: var(--color-surface, #1f2125);--tree-color-surface-hover: var(--color-surface-hover, #2b2f35);--tree-color-surface-selected: var(--color-surface-selected, #343941);--tree-color-surface-subtle: var(--color-surface-subtle, #25282d);--tree-color-text-accent: var(--color-text-accent, #ffc98c);--tree-color-text-disabled: var(--color-text-disabled, #626b76);--tree-color-text-primary: var(--color-text-primary, #edf0f3);--tree-color-text-secondary: var(--color-text-secondary, #b8bec7);--tree-color-text-tertiary: var(--color-text-tertiary, #89919c);--tree-color-warning: var(--color-warning, #e7b45c);--tree-color-warning-soft: var(--color-warning-soft, #382f19);--tree-shadow-lg: var(--shadow-lg, 0 18px 44px rgba(0, 0, 0, .42), 0 6px 16px rgba(0, 0, 0, .22))}.pde-tree-root{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;font-family:var(--font-family-ui, Inter, ui-sans-serif, system-ui, sans-serif);font-size:var(--font-size-sm, 13px);line-height:var(--line-height-normal, 20px);color:var(--tree-color-text-primary, #26282b);background:var(--tree-color-surface, #ffffff)}.pde-tree-toolbar{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--tree-color-border-subtle, #eceff1);flex-shrink:0}.pde-tree-searchRow{display:flex;align-items:center;padding:6px 8px;border-bottom:1px solid var(--tree-color-border-subtle, #eceff1);flex-shrink:0;gap:6px}.pde-tree-searchInputWrap{position:relative;flex:1;min-width:0;display:flex;align-items:center}.pde-tree-searchIcon{position:absolute;left:8px;display:flex;align-items:center;color:var(--tree-color-text-tertiary, #989da5);pointer-events:none;z-index:1}.pde-tree-searchInput{width:100%;height:28px;padding:0 8px 0 28px;font-size:var(--font-size-sm, 13px);font-family:inherit;color:var(--tree-color-text-primary, #26282b);background:var(--tree-color-surface-subtle, #f8f9fa);border:1px solid var(--tree-color-border-default, #e0e4e8);border-radius:var(--radius-sm, 4px);outline:none;transition:border-color var(--transition-fast, .14s ease),box-shadow var(--transition-fast, .14s ease),background var(--transition-fast, .14s ease)}.pde-tree-searchInput:hover{border-color:var(--tree-color-border-strong, #ccd2d8)}.pde-tree-searchInput:focus{border-color:var(--tree-color-border-strong, #ccd2d8);box-shadow:0 0 0 2px var(--tree-color-focus-ring, rgba(122, 131, 143, .3));background:var(--tree-color-surface, #ffffff)}.pde-tree-searchInput::placeholder{color:var(--tree-color-text-tertiary, #989da5)}.pde-tree-iconButton{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;font-size:var(--icon-size-sm, 14px);color:var(--tree-color-text-secondary, #6f747c);background:transparent;border:none;border-radius:var(--radius-sm, 4px);cursor:pointer;transition:color var(--transition-fast, .14s ease);flex-shrink:0}.pde-tree-iconButton:hover:not(:disabled){color:var(--tree-color-accent, #f28c28)}.pde-tree-iconButton:active:not(:disabled){color:var(--tree-color-accent-active, #c9640d)}.pde-tree-iconButton:disabled{opacity:.35;cursor:not-allowed}.pde-tree-treeContainer{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 0}.pde-tree-treeContainer:focus{outline:none}.pde-tree-treeContainer::-webkit-scrollbar{width:6px}.pde-tree-treeContainer::-webkit-scrollbar-track{background:transparent}.pde-tree-treeContainer::-webkit-scrollbar-thumb{background:var(--tree-color-border-default, #e0e4e8);border-radius:3px}.pde-tree-treeContainer::-webkit-scrollbar-thumb:hover{background:var(--tree-color-border-strong, #ccd2d8)}.pde-tree-indentGuide{position:absolute;top:0;bottom:0;width:1px;background:var(--tree-color-border-subtle, #eceff1);pointer-events:none}.pde-tree-nodeRow{display:flex;align-items:center;gap:4px;height:28px;padding:0 8px;cursor:default;user-select:none;white-space:nowrap;position:relative;outline:none;transition:background var(--transition-fast, .14s ease)}.pde-tree-nodeRow:hover{background:var(--tree-color-surface-hover, #f4f5f6)}.pde-tree-nodeRowSelected{background:var(--tree-color-surface-selected, #eef0f2)}.pde-tree-nodeRowSelected:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--tree-color-accent, #f28c28);border-radius:1px}.pde-tree-nodeRowSelected:hover{background:var(--tree-color-surface-selected, #eef0f2)}.pde-tree-nodeRowSelected .pde-tree-nodeLabel{font-weight:var(--font-weight-medium, 500);color:var(--tree-color-text-primary, #26282b)}.pde-tree-branchControl,.pde-tree-leafItem{cursor:pointer}.pde-tree-expandIcon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;color:var(--tree-color-text-tertiary, #989da5)}.pde-tree-expandIconPlaceholder{width:14px;flex-shrink:0}.pde-tree-dragHandle{position:absolute;top:50%;transform:translateY(-50%);z-index:1;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;color:var(--tree-color-text-tertiary, #989da5);cursor:grab;opacity:0;pointer-events:none;transition:opacity var(--transition-fast, .14s ease),color var(--transition-fast, .14s ease)}.pde-tree-dragHandle:hover{color:var(--tree-color-text-primary, #26282b);opacity:1}.pde-tree-dragHandle:active{cursor:grabbing}.pde-tree-dragHandleDisabled{cursor:not-allowed;opacity:.2!important}.pde-tree-nodeRow:hover .pde-tree-dragHandle{opacity:.6;pointer-events:auto}.pde-tree-nodeRow:hover .pde-tree-dragHandle:hover{opacity:1}.pde-tree-nodeIcon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;color:var(--tree-color-text-tertiary, #989da5)}.pde-tree-primitiveDot{width:5px;height:5px;border-radius:50%;background:currentColor;display:inline-block}.pde-tree-nodeLabel{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-regular, 400);font-size:var(--font-size-sm, 13px)}.pde-tree-nodeLabelBranch{font-weight:var(--font-weight-medium, 500)}.pde-tree-deprecatedLabel{text-decoration:line-through;color:var(--tree-color-text-tertiary, #989da5)}.pde-tree-nodeSuffix{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.pde-tree-countBadge{margin-left:auto;font-size:10px;font-weight:var(--font-weight-medium, 500);color:var(--tree-color-text-tertiary, #989da5);background:var(--tree-color-surface-subtle, #f8f9fa);border:1px solid var(--tree-color-border-subtle, #eceff1);border-radius:var(--radius-full, 9999px);padding:0 5px;line-height:14px;min-width:16px;text-align:center}.pde-tree-methodBadge{display:inline-flex;align-items:center;justify-content:center;width:40px;height:18px;font-size:10px;font-weight:var(--font-weight-semibold, 600);letter-spacing:.3px;border-radius:var(--radius-xs, 3px);flex-shrink:0;margin-right:6px;font-family:var(--font-family-ui, Inter, ui-sans-serif, system-ui, sans-serif)}.pde-tree-methodGet{color:var(--tree-color-success, #428961);background:var(--tree-color-success-soft, #eff8f2)}.pde-tree-methodPost{color:var(--tree-color-info, #4f79bf);background:var(--tree-color-info-soft, #f0f5ff)}.pde-tree-methodPut{color:var(--tree-color-warning, #d98a22);background:var(--tree-color-warning-soft, #fff8e8)}.pde-tree-methodPatch{color:var(--tree-color-dynamic, #4d7ec8);background:var(--tree-color-accent-bg-soft, #f0f5ff)}.pde-tree-methodDelete{color:var(--tree-color-danger, #c95555);background:var(--tree-color-danger-soft, #fff2f1)}.pde-tree-methodOther{color:var(--tree-color-text-secondary, #6f747c);background:var(--tree-color-surface-subtle, #f8f9fa)}.pde-tree-requiredDot{width:4px;height:4px;border-radius:50%;background:var(--tree-color-danger, #c95555);flex-shrink:0}.pde-tree-highlight{background:var(--tree-color-accent-bg, #fff8ef);color:var(--tree-color-text-accent, #d97818);border-radius:2px;padding:0 1px;font-weight:var(--font-weight-medium, 500)}.pde-tree-emptyState{display:flex;align-items:center;justify-content:center;padding:24px 16px;color:var(--tree-color-text-tertiary, #989da5);font-size:var(--font-size-xs, 12px)}.pde-tree-nodeDragging{opacity:.35}.pde-tree-dropIndicatorBefore:before{content:"";position:absolute;top:0;left:8px;right:8px;height:2px;background:var(--tree-color-accent, #f28c28);border-radius:1px;pointer-events:none;z-index:2}.pde-tree-dropIndicatorAfter:after{content:"";position:absolute;bottom:0;left:8px;right:8px;height:2px;background:var(--tree-color-accent, #f28c28);border-radius:1px;pointer-events:none;z-index:2}.pde-tree-dropIndicatorChild{background:var(--tree-color-accent-bg, #fff8ef)!important;box-shadow:inset 0 0 0 1px var(--tree-color-accent, #f28c28);border-radius:var(--radius-sm, 4px)}.pde-tree-moreButton{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;flex-shrink:0;color:var(--tree-color-text-tertiary, #989da5);background:transparent;border:none;border-radius:var(--radius-xs, 3px);cursor:pointer;opacity:0;transition:opacity var(--transition-fast, .14s ease),color var(--transition-fast, .14s ease)}.pde-tree-nodeRow:hover .pde-tree-moreButton{opacity:1}.pde-tree-moreButton:hover{color:var(--tree-color-accent, #f28c28)}.pde-tree-moreButtonActive{opacity:1!important;color:var(--tree-color-accent, #f28c28)}.pde-tree-contextMenu{position:fixed;z-index:1000;width:min(248px,calc(100vw - 16px));min-width:0;max-width:calc(100vw - 16px);padding:4px;background:var(--tree-color-surface, #ffffff);border:1px solid var(--tree-color-border-default, #e0e4e8);border-radius:var(--radius-md, 6px);box-shadow:var(--tree-shadow-lg, 0 16px 40px rgba(28, 32, 36, .1));font-size:var(--font-size-xs, 12px);font-family:inherit;color:var(--tree-color-text-primary);max-height:calc(100dvh - 16px);overflow:auto;overscroll-behavior:contain}.pde-tree-contextMenuItem{display:flex;align-items:center;gap:8px;width:100%;height:30px;padding:0 8px;text-align:left;font-size:var(--font-size-sm, 13px);font-family:inherit;color:var(--tree-color-text-primary, #26282b);background:transparent;border:none;border-radius:var(--radius-xs, 3px);cursor:pointer;transition:background var(--transition-fast, .14s ease);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pde-tree-contextMenuItem:hover:not(:disabled){background:var(--tree-color-surface-hover, #f4f5f6)}.pde-tree-contextMenuItem:disabled{color:var(--tree-color-text-disabled, #c2c6cc);cursor:not-allowed}.pde-tree-contextMenuItemDanger,.pde-tree-contextMenuItemDanger .pde-tree-contextMenuIcon{color:var(--tree-color-danger, #c95555)}.pde-tree-contextMenuItemDanger:hover:not(:disabled){background:var(--tree-color-danger-soft, #fff2f1)}.pde-tree-contextMenuItemConfirming{background:var(--tree-color-danger-soft, #fff2f1);color:var(--tree-color-danger, #c95555);font-weight:var(--font-weight-semibold, 600)}.pde-tree-contextMenuItemConfirming:hover:not(:disabled){background:var(--tree-color-danger-soft, #fff2f1);color:var(--tree-color-danger, #c95555)}.pde-tree-contextMenuItemConfirming .pde-tree-contextMenuIcon{color:var(--tree-color-danger, #c95555)}.pde-tree-contextMenuItem:focus{outline:none;box-shadow:none}.pde-tree-contextMenuIcon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;color:var(--tree-color-text-secondary, #6f747c)}.pde-tree-contextMenuSeparator{height:1px;margin:4px 0;background:var(--tree-color-border-subtle, #eceff1)}.pde-tree-variant-doc{background:var(--tree-color-surface, #ffffff);font-size:var(--font-size-sm, 13px)}.pde-tree-variant-doc .pde-tree-nodeRow{height:28px;border-radius:0;padding:0 12px;position:relative}.pde-tree-variant-doc .pde-tree-nodeRow:hover,.pde-tree-variant-doc .pde-tree-nodeRowSelected{background:var(--tree-color-surface-hover, #f4f5f6)}.pde-tree-variant-doc .pde-tree-nodeRowSelected:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--tree-color-accent, #f28c28);border-radius:1px}.pde-tree-variant-doc .pde-tree-nodeLabelBranch{font-size:11px;font-weight:var(--font-weight-semibold, 600);letter-spacing:.6px;text-transform:uppercase;color:var(--tree-color-text-tertiary, #989da5)}.pde-tree-variant-doc .pde-tree-nodeRow:has(.pde-tree-nodeLabelBranch){padding-top:10px;padding-bottom:2px;height:auto;min-height:28px}.pde-tree-variant-doc .pde-tree-leafItem .pde-tree-nodeLabel{font-weight:var(--font-weight-regular, 400);color:var(--tree-color-text-secondary, #6f747c);transition:color var(--transition-fast, .14s ease)}.pde-tree-variant-doc .pde-tree-nodeRow:hover .pde-tree-nodeLabel{color:var(--tree-color-text-primary, #26282b)}.pde-tree-variant-doc .pde-tree-nodeRowSelected .pde-tree-nodeLabel{color:var(--tree-color-text-primary, #26282b);font-weight:var(--font-weight-medium, 500)}.pde-tree-variant-doc .pde-tree-dragHandle{display:none}.pde-tree-variant-doc .pde-tree-methodBadge{font-size:10px;font-weight:var(--font-weight-semibold, 600);width:38px;height:18px;margin-right:4px}.pde-tree-variant-doc .pde-tree-indentGuide{background:var(--tree-color-border-subtle, #eceff1);opacity:.6}.pde-tree-variant-doc .pde-tree-searchRow{padding:8px 12px;border-bottom:1px solid var(--tree-color-border-subtle, #eceff1)}.pde-tree-variant-doc .pde-tree-searchInput{background:var(--tree-color-surface-subtle, #f8f9fa);border:1px solid transparent;height:30px}.pde-tree-variant-doc .pde-tree-searchInput:focus{background:var(--tree-color-surface, #ffffff);border-color:var(--tree-color-border-default, #e0e4e8)}.pde-tree-variant-api{font-size:var(--font-size-sm, 13px)}.pde-tree-variant-api .pde-tree-nodeRow{height:28px}.pde-tree-variant-api .pde-tree-methodBadge{min-width:34px;font-size:10px}.pde-tree-kind-section{height:32px!important}.pde-tree-kind-section .pde-tree-nodeLabel{font-size:11px;font-weight:var(--font-weight-semibold, 600);text-transform:uppercase;letter-spacing:.06em;color:var(--tree-color-text-secondary, #6f747c)}.pde-tree-kind-section .pde-tree-nodeIcon{color:var(--tree-color-accent, #f28c28)}.pde-tree-kind-section.pde-tree-nodeRowSelected .pde-tree-nodeLabel{color:var(--tree-color-text-primary, #26282b)}.pde-tree-variant-schema{font-size:var(--font-size-sm, 13px)}.pde-tree-variant-schema .pde-tree-nodeRow{height:28px}.pde-tree-variant-schema .pde-tree-requiredDot{width:5px;height:5px}.pde-tree-variant-schema .pde-tree-branchControl .pde-tree-nodeIcon{color:var(--tree-color-warning, #d98a22)}.pde-tree-variant-schema .pde-tree-leafItem .pde-tree-nodeIcon{color:var(--tree-color-info, #4f79bf)}.pde-tree-root{min-width:0;--tree-row-height: 28px}.pde-tree-root,.pde-tree-root *,.pde-tree-contextMenu,.pde-tree-contextMenu *{box-sizing:border-box}.pde-tree-root[data-size=xs]{--tree-row-height: 24px}.pde-tree-root[data-size=md]{--tree-row-height: 32px}.pde-tree-treeContainer{padding:4px 6px;overscroll-behavior:contain}.pde-tree-root .pde-tree-nodeRow{border-radius:var(--radius-md, 6px);min-width:0}.pde-tree-treeContainer[data-virtualized=true] .pde-tree-nodeRow{height:var(--tree-row-height)!important;min-height:var(--tree-row-height);margin:0;padding-block:0}.pde-tree-root .pde-tree-searchRow{background:transparent;padding:8px;gap:6px}.pde-tree-root .pde-tree-searchInput{height:var(--control-height-sm, 28px);border-radius:var(--radius-md, 6px)}.pde-tree-root .pde-tree-iconButton{width:var(--control-height-sm, 28px);height:var(--control-height-sm, 28px);border-radius:var(--radius-md, 6px)}.pde-tree-iconButton:hover:not(:disabled),.pde-tree-moreButton:hover{background:var(--tree-color-surface-hover);color:var(--tree-color-text-primary)}.pde-tree-root :is(button,input,[role=treeitem]):focus-visible{outline:2px solid var(--tree-color-border-strong, #ccd2d8);outline-offset:-2px}.pde-tree-nodeRow:focus-within .pde-tree-moreButton,.pde-tree-moreButton:focus-visible{opacity:1}.pde-tree-root .pde-tree-moreButton{width:24px;height:24px;border-radius:var(--radius-sm, 4px)}.pde-tree-root .pde-tree-nodeSuffix{max-width:35%;overflow:hidden}.pde-tree-contextMenu{font-family:var(--font-family-ui, Inter, ui-sans-serif, system-ui, sans-serif);border-radius:var(--radius-lg, 8px)}.pde-tree-contextMenuItem{height:auto;min-height:32px;white-space:normal;padding:6px 9px;line-height:20px}.pde-tree-contextMenuItem>span:last-child{min-width:0;overflow-wrap:anywhere}.pde-tree-contextMenuItem:focus-visible{outline:2px solid var(--tree-color-border-strong, #ccd2d8);outline-offset:-2px;background:var(--tree-color-surface-hover)}.pde-tree-treeContainer,.pde-tree-contextMenu{scrollbar-width:thin;scrollbar-color:transparent transparent}.pde-tree-treeContainer::-webkit-scrollbar,.pde-tree-contextMenu::-webkit-scrollbar{width:6px;height:6px}.pde-tree-treeContainer::-webkit-scrollbar-thumb,.pde-tree-contextMenu::-webkit-scrollbar-thumb{background:transparent;border-radius:9999px}.pde-tree-treeContainer:hover,.pde-tree-treeContainer:focus-within,.pde-tree-contextMenu:hover,.pde-tree-contextMenu:focus-within{scrollbar-color:var(--tree-color-border-strong) transparent}.pde-tree-treeContainer:hover::-webkit-scrollbar-thumb,.pde-tree-treeContainer:focus-within::-webkit-scrollbar-thumb,.pde-tree-contextMenu:hover::-webkit-scrollbar-thumb,.pde-tree-contextMenu:focus-within::-webkit-scrollbar-thumb{background:var(--tree-color-border-strong)}@media(hover:none){.pde-tree-moreButton,.pde-tree-dragHandle{opacity:1;pointer-events:auto}.pde-tree-treeContainer,.pde-tree-contextMenu{scrollbar-color:var(--tree-color-border-strong) transparent}}@media(prefers-reduced-motion:reduce){.pde-tree-root *,.pde-tree-contextMenu *{transition:none;animation:none;scroll-behavior:auto}}
@@ -1 +1 @@
1
- import{i as Je,j as Ae,k as Ue,p as Ye,q as He}from"../chunk-AHHDXXHL.js";import{forwardRef as Dt,memo as Ct,useCallback as R,useEffect as Fe,useImperativeHandle as Rt,useId as Et,useMemo as Me,useRef as nt,useState as ue}from"react";import{useLayoutEffect as It,useRef as Mt,useState as Ge}from"react";import{createPortal as Tt}from"react-dom";import{jsx as Re,jsxs as Xe}from"react/jsx-runtime";function Ze({state:r,onClose:t}){let u=Mt(null),[n,c]=Ge(null),[b,g]=Ge({left:r.x,top:r.y}),[P,w]=Ge({}),M=r.anchor.closest("dialog")??r.anchor.ownerDocument.body;return It(()=>{let l=r.anchor.closest(".pde-tree-root")??r.anchor,v=getComputedStyle(l),y={};for(let T=0;T<v.length;T++){let z=v.item(T);(z.startsWith("--tree-")||z.startsWith("--color-")||z.startsWith("--radius-")||z.startsWith("--font-")||z.startsWith("--shadow-"))&&(y[z]=v.getPropertyValue(z))}w(y);let h=u.current;if(!h)return;let E=()=>{let T=h.getBoundingClientRect();g({left:Math.max(8,Math.min(r.x,document.documentElement.clientWidth-T.width-8)),top:Math.max(8,Math.min(r.y,document.documentElement.clientHeight-T.height-8))})};E();let Q=typeof ResizeObserver>"u"?void 0:new ResizeObserver(E);Q?.observe(h),h.querySelector("button:not(:disabled)")?.focus();let _=T=>{T.target instanceof Node&&!h.contains(T.target)&&t()},J=T=>{T.target instanceof Node&&!h.contains(T.target)&&t()};return document.addEventListener("pointerdown",_),document.addEventListener("scroll",J,!0),window.addEventListener("resize",t),()=>{Q?.disconnect(),document.removeEventListener("pointerdown",_),document.removeEventListener("scroll",J,!0),window.removeEventListener("resize",t),h.contains(document.activeElement)&&r.anchor.isConnected&&r.anchor.focus({preventScroll:!0})}},[r,t]),Tt(Re("div",{ref:u,className:"pde-tree-contextMenu",style:{...P,...b},role:"menu","aria-label":`Actions for ${r.node.name}`,tabIndex:-1,onKeyDown:l=>{let v=u.current;if(!v)return;let y=Array.from(v.querySelectorAll("button:not(:disabled)")),h=y.indexOf(document.activeElement);if(l.key==="Escape"||l.key==="Tab"){l.key==="Escape"&&l.preventDefault(),l.stopPropagation(),t();return}let E;if(l.key==="ArrowDown")E=(h+1)%y.length;else if(l.key==="ArrowUp")E=(h-1+y.length)%y.length;else if(l.key==="Home")E=0;else if(l.key==="End")E=y.length-1;else return;l.preventDefault(),y[E]?.focus()},children:r.items.map((l,v)=>Xe("div",{role:"presentation",children:[l.separator&&Re("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),Xe("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:l.disabled,className:`pde-tree-contextMenuItem${l.danger?" pde-tree-contextMenuItemDanger":""}${n===v?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(l.confirm&&n!==v){c(v);return}t(),l.onClick(r.node)},children:[l.icon&&Re("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:l.icon}),Re("span",{children:l.confirm&&n===v?l.confirmLabel??"Confirm?":l.label})]})]},`${l.label}-${v}`))}),M)}import{useCallback as ie,useMemo as Ee,useRef as et,useState as St}from"react";function qe(r,t={}){let{defaultExpandedIds:u,defaultExpandDepth:n=1,onExpandedChange:c}=t,b=Ee(()=>u!==void 0?[...u]:n<=1?[]:Ae(r,{maxDepth:n-1,onlyWithChildren:!0}),[]),[g,P]=St(b),w=et(new Map),M=Ee(()=>Ue(r),[r]),l=Ee(()=>new Set(g),[g]),v=et(g);v.current=g;let y=Ee(()=>M.length>0&&M.every(I=>l.has(I)),[M,l]),h=ie(I=>{v.current=I,P(I),c?.(I)},[c]),E=ie(I=>{let S=v.current,re=S.includes(I)?S.filter(he=>he!==I):[...S,I];h(re)},[h]),Q=ie(()=>{h([...M])},[M,h]),_=ie(()=>{h([])},[h]),J=ie(I=>{let S=Ae(r,{maxDepth:I,onlyWithChildren:!0});h(S)},[r,h]),T=ie((I,S)=>{S?w.current.set(I,S):w.current.delete(I)},[]),z=ie(I=>{let S=w.current.get(I);S&&S.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:g,setExpandedIds:h,toggleNode:E,expandAll:Q,collapseAll:_,expandToDepth:J,isAllExpanded:y,allBranchIds:M,setNodeElementRef:T,scrollToNode:z,nodeElementRefs:w}}import{useCallback as tt,useDeferredValue as kt,useMemo as Nt,useState as rt}from"react";function je(r){let[t,u]=rt(""),n=kt(t),[c,b]=rt(null),g=n.trim().length>0,P=Nt(()=>g?Je(r,{query:n,keepAncestors:!0}):r,[r,n,g]),w=tt((l,v)=>{let y=t.trim(),h=l.trim();!y&&h&&b(v),y&&!h&&b(null),u(l)},[t]),M=tt(()=>{u(""),b(null)},[]);return{query:t,deferredQuery:n,isSearching:g,filteredNodes:P,expandedBeforeSearch:c,handleQueryChange:w,clearSearch:M}}function ot(r){let t=new Map,u=new Set,n=r.map(c=>({node:c,parentId:null})).reverse();for(;n.length;){let c=n.pop();if(u.has(c.node)||t.has(c.node.id))continue;u.add(c.node),t.set(c.node.id,c);let b=c.node.children??[];for(let g=b.length-1;g>=0;g--)n.push({node:b[g],parentId:c.node.id})}return{byId:t,path(c){let b=t.get(c);if(!b)return null;let g=[b.node],P=b.parentId;for(;P!==null;){let w=t.get(P);if(!w)break;g.push(w.node),P=w.parentId}return g.reverse(),{nodes:g,target:b.node,parent:g[g.length-2],ancestorIds:g.slice(0,-1).map(w=>w.id)}}}}var $e={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PATCH",head:"HEAD",options:"OPT",trace:"TRA",connect:"CONN"};function Le(r){let t=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call($e,t)?$e[t]:t.slice(0,4).toUpperCase()}import{LuBraces as at,LuChevronDown as Lt,LuChevronRight as Pt,LuEllipsisVertical as Bt,LuFolder as zt,LuFolderOpen as Ot,LuGripVertical as At,LuList as Ht,LuRefreshCw as Gt,LuSearch as qt,LuZap as jt}from"react-icons/lu";import{MdOutlineUnfoldMore as $t,MdUnfoldLess as Ft}from"react-icons/md";import{Fragment as Te,jsx as a,jsxs as fe}from"react/jsx-runtime";var s={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Qt({expanded:r}){return a("span",{className:s.expandIcon,children:r?a(Lt,{size:14}):a(Pt,{size:14})})}function Wt(){return a(qt,{size:14,"aria-hidden":"true"})}function Kt(){return a(At,{size:14,"aria-hidden":"true"})}function Vt(){return a(Bt,{size:14,"aria-hidden":"true"})}function dt(r){let u=r.metadata?.jsonPath;if(Array.isArray(u)&&u.length>0&&u.every(n=>typeof n=="string"||typeof n=="number"&&Number.isInteger(n)&&n>=0))return u}function _t(r,t,u,n){let c=dt(r);if(!c||c.length===0)return[];let b=JSON.stringify(c.slice(0,-1));if(!n.every((P,w)=>{let M=dt(P);return M&&M[M.length-1]===w&&JSON.stringify(M.slice(0,-1))===b}))return[];let g=c.slice(0,-1);return[{op:"move",from:[...g,t],path:[...g,u]}]}function Jt({text:r,query:t}){if(!t)return a(Te,{children:r});let u=r.toLowerCase(),n=t.toLowerCase(),c=u.indexOf(n);return c===-1?a(Te,{children:r}):fe(Te,{children:[r.slice(0,c),a("span",{className:s.highlight,children:r.slice(c,c+t.length)}),r.slice(c+t.length)]})}var it={get:s.methodGet,post:s.methodPost,put:s.methodPut,patch:s.methodPatch,delete:s.methodDelete};function Ut({method:r}){let t=r.toLowerCase(),u=Object.prototype.hasOwnProperty.call(it,t)?it[t]:s.methodOther,n=Le(r);return a("span",{className:`${s.methodBadge} ${u}`,children:n})}var F={draggedId:null,dragOverId:null,dragOverPosition:null};function Yt(r,t){if(r.isFocused!==t.isFocused||r.positionInSet!==t.positionInSet||r.setSize!==t.setSize||r.node!==t.node||r.depth!==t.depth||r.isExpanded!==t.isExpanded||r.isSelected!==t.isSelected||r.searchQuery!==t.searchQuery||r.showIndentGuides!==t.showIndentGuides||r.canDragNode!==t.canDragNode||r.draggable!==t.draggable||r.showContextMenuButton!==t.showContextMenuButton||r.activeMenuNodeId===r.node.id!=(t.activeMenuNodeId===t.node.id))return!1;let u=r.dragState.draggedId===r.node.id,n=t.dragState.draggedId===t.node.id;if(u!==n)return!1;let c=r.dragState.dragOverId===r.node.id,b=t.dragState.dragOverId===t.node.id;return!(c!==b||c&&b&&r.dragState.dragOverPosition!==t.dragState.dragOverPosition||r.renderIcon!==t.renderIcon||r.renderLabel!==t.renderLabel||r.renderSuffix!==t.renderSuffix||r.renderNode!==t.renderNode||r.onToggle!==t.onToggle||r.onSelect!==t.onSelect||r.onNodeRef!==t.onNodeRef||r.onDragStart!==t.onDragStart||r.onDragOver!==t.onDragOver||r.onDragLeave!==t.onDragLeave||r.onDrop!==t.onDrop||r.onDragEnd!==t.onDragEnd||r.onContextMenu!==t.onContextMenu||r.onMoreClick!==t.onMoreClick)}function Xt(r){let{node:t,depth:u,onToggle:n,onSelect:c,onNodeRef:b,searchQuery:g,showIndentGuides:P,renderIcon:w,renderLabel:M,renderSuffix:l,renderNode:v,draggable:y,dragState:h,canDragNode:E,onDragStart:Q,onDragOver:_,onDragLeave:J,onDrop:T,onDragEnd:z,showContextMenuButton:I,activeMenuNodeId:S,onContextMenu:re,onMoreClick:he}=r,{isExpanded:G,isSelected:ge}=r,se=(t.children?.length??0)>0,L=se,Se=!se,oe=h.draggedId===t.id,W=h.dragOverId===t.id,U=W?h.dragOverPosition:null,O=t.metadata,K=typeof O?.method=="string"?O.method:void 0,me=O?.deprecated===!0,Pe=O?.required===!0,A=typeof O?.kind=="string"?O.kind:void 0,V={node:t,depth:u,isExpanded:G,isSelected:ge,isBranch:L,isLeaf:Se,isDragging:oe,isDragOver:W,dragOverPosition:U},ce=R(()=>{L?n(t.id):c(t)},[L,t,c,n]),q=R(m=>{m.target===m.currentTarget&&(m.key==="Enter"||m.key===" "?(m.preventDefault(),ce()):(m.key==="ArrowRight"&&L&&!G||m.key==="ArrowLeft"&&L&&G)&&(m.preventDefault(),m.stopPropagation(),n(t.id)))},[ce,L,G,t.id,n]),B=w?w(V):K?null:a("span",{className:s.nodeIcon,children:A==="section"&&O?.section==="components"?a(at,{size:14}):A==="section"&&O?.section==="webhooks"?a(jt,{size:14}):A==="schema"||A==="component"||A==="object"?a(at,{size:14}):A==="array"||A==="items"?a(Ht,{size:14}):L?G?a(Ot,{size:14}):a(zt,{size:14}):a("span",{className:s.primitiveDot})}),le=M?M(V):a("span",{className:`${s.nodeLabel} ${L?s.nodeLabelBranch:""} ${me?s.deprecatedLabel:""}`,children:a(Jt,{text:t.name,query:g})}),ke=l?l(V):null,ne=[s.nodeRow,L?s.branchControl:s.leafItem,ge?s.nodeRowSelected:"",oe?s.nodeDragging:"",W&&U==="before"?s.dropIndicatorBefore:"",W&&U==="after"?s.dropIndicatorAfter:"",W&&U==="child"?s.dropIndicatorChild:"",A?`pde-tree-kind-${A}`:""].filter(Boolean).join(" "),Ne=R(m=>b(t.id,m),[t.id,b]),k=fe("div",{ref:Ne,className:ne,style:{paddingLeft:`${Math.min(u,20)*12+4}px`},"data-node-id":t.id,role:"treeitem","aria-expanded":L?G:void 0,"aria-label":K?`${Le(K)} ${t.name}`:t.name,"aria-selected":ge,"aria-level":u+1,"aria-posinset":r.positionInSet,"aria-setsize":r.setSize,"aria-grabbed":y&&E?oe:void 0,tabIndex:r.isFocused?0:-1,onFocus:()=>r.onFocusNode(t.id),onClick:ce,onKeyDown:q,onContextMenu:I?m=>re(t,m):void 0,onDragOver:y?m=>_(t,m):void 0,onDragLeave:y?()=>J(t):void 0,onDrop:y?m=>T(t,m):void 0,children:[P&&u>1&&Array.from({length:Math.min(u-1,20)},(m,Y)=>a("span",{className:s.indentGuide,style:{left:`${(Y+1)*12+29}px`}},`guide-${Y}`)),y&&E&&a("span",{className:s.dragHandle,draggable:!0,onDragStart:m=>Q(t,m),onDragEnd:z,title:"Drag to reorder","aria-label":"Drag to reorder",children:a(Kt,{})}),L?a(Qt,{expanded:G}):a("span",{className:s.expandIconPlaceholder}),B,K&&a(Ut,{method:K}),le,Pe&&a("span",{className:s.requiredDot,title:"Required"}),a("span",{className:s.nodeSuffix,children:ke}),I&&a("button",{type:"button",className:[s.moreButton,S===t.id?s.moreButtonActive:""].filter(Boolean).join(" "),onClick:m=>he(t,m),title:"More actions","aria-label":`More actions for ${t.name}`,"aria-haspopup":"menu","aria-expanded":S===t.id,tabIndex:-1,children:a(Vt,{})})]}),De=v?v(V,k):k;return a(Te,{children:De})}var Zt=Ct(Xt,Yt),er=Dt(function(t,u){let{nodes:n,onSelect:c,onExpandedChange:b,defaultExpandedIds:g,defaultExpandDepth:P=1,searchable:w=!1,searchPlaceholder:M="Search...",showExpandAll:l=!1,showRefresh:v=!1,onRefresh:y,toolbar:h,searchRowExtra:E,renderNode:Q,renderIcon:_,renderLabel:J,renderSuffix:T,className:z,style:I,size:S="sm",variant:re="default",showIndentGuides:he=!0,maxHeight:G,rootRef:ge,draggable:se=!1,dragGroupKey:L,onReorder:Se,onMove:oe,canDrag:W,canDrop:U,contextMenuItems:O,onContextMenuOpen:K,onPatch:me,theme:Pe,virtualized:A="auto"}=t,[V,ce]=ue(null),[q,B]=ue(F),[le,ke]=ue(null),ne=nt(null),Ne=Et(),k=Me(()=>ot(n),[n]),[De,m]=ue({top:0,height:400}),[Y,xe]=ue(null),[Be,Qe]=ue(null),x=qe(n,{defaultExpandedIds:g,defaultExpandDepth:P,onExpandedChange:b}),C=je(n),We=C.isSearching?x.allBranchIds:C.expandedBeforeSearch??x.expandedIds,be=Me(()=>new Set(We),[We]),N=Me(()=>{let e=[],o=new Set,d=C.filteredNodes.map((i,f,p)=>({node:i,depth:0,parentId:null,positionInSet:f+1,setSize:p.length})).reverse();for(;d.length;){let i=d.pop();if(!o.has(i.node.id)&&(o.add(i.node.id),e.push(i),be.has(i.node.id))){let f=i.node.children??[];for(let p=f.length-1;p>=0;p--)d.push({node:f[p],depth:i.depth+1,parentId:i.node.id,positionInSet:p+1,setSize:f.length})}}return e},[C.filteredNodes,be]),ve=Me(()=>new Map(N.map((e,o)=>[e.node.id,o])),[N]),ae=S==="xs"?24:S==="md"?32:28,X=A!==!1&&re!=="doc"&&!Q&&(A===!0||N.length>500),pe=X?Math.max(0,Math.min(Math.floor(De.top/ae)-8,N.length-1)):0,we=X?Math.min(N.length,pe+Math.ceil(De.height/ae)+16):N.length,Ke=N.slice(pe,we);Fe(()=>{let e=ne.current;if(!e)return;let o=()=>m({top:e.scrollTop,height:e.clientHeight||400});o();let d=typeof ResizeObserver>"u"?void 0:new ResizeObserver(o);return d?.observe(e),()=>d?.disconnect()},[]),Fe(()=>{if(!Y)return;let e=ve.get(Y.id);if(e===void 0){xe(null);return}let o=ne.current;if(X&&o&&(e<pe||e>=we)){let i=o.clientHeight||400,f=Math.min(e*ae,Math.max(0,N.length*ae-i));o.scrollTop=f,m(p=>({...p,top:o.scrollTop}));return}let d=x.nodeElementRefs.current.get(Y.id);Y.focus&&d?.focus({preventScroll:!0}),d?.scrollIntoView?.({block:"nearest"}),xe(null)},[Y,ve,X,ae,pe,we,N.length,x.nodeElementRefs]);let ze=Be===null?void 0:ve.get(Be),st=ze!==void 0&&ze>=pe&&ze<we?Be:Ke[0]?.node.id,Oe=nt({query:"",time:0}),ct=e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute("role")!=="treeitem")return;let o=ve.get(e.target.dataset.nodeId??"");if(o===void 0)return;let d=N[o],i=o;if(e.key==="ArrowDown")i=Math.min(o+1,N.length-1);else if(e.key==="ArrowUp")i=Math.max(0,o-1);else if(e.key==="Home")i=0;else if(e.key==="End")i=N.length-1;else if(e.key==="ArrowRight"&&d.node.children?.length&&be.has(d.node.id))i=Math.min(o+1,N.length-1);else if(e.key==="ArrowLeft"&&(!d.node.children?.length||!be.has(d.node.id)))i=ve.get(d.parentId??"")??o;else if(e.key==="ContextMenu"||e.shiftKey&&e.key==="F10"){let p=e.target.getBoundingClientRect();e.preventDefault(),Ie(d.node,p.left+24,p.bottom);return}else if(e.key.length===1&&e.key!==" "&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let p=Date.now(),H=p-Oe.current.time<600?Oe.current.query+e.key.toLowerCase():e.key.toLowerCase();Oe.current={query:H,time:p};for(let D=1;D<=N.length;D++){let $=(o+D)%N.length;if(N[$].node.name.toLowerCase().startsWith(H)){i=$;break}}}else return;e.preventDefault();let f=N[i].node.id;Qe(f),xe({id:f,focus:!0})};Fe(()=>{ne.current&&(ne.current.scrollTop=0),m(e=>({...e,top:0}))},[C.deferredQuery]);let lt=R(e=>{ce(e.id),c?.(e)},[c]),pt=R(e=>{!e.trim()&&C.expandedBeforeSearch&&x.setExpandedIds(C.expandedBeforeSearch),C.handleQueryChange(e,x.expandedIds)},[x.expandedIds,C]),ye=R(e=>!se||e.metadata?.kind==="section"?!1:W?W(e):!0,[W,se]),Ce=R((e,o,d)=>{if(e.id===o.id||!ye(e)||k.path(o.id)?.ancestorIds.includes(e.id))return!1;if(L){let f=D=>{let $=k.path(D)?.nodes??[];for(let Z=$.length-1;Z>=0;Z--){let ee=$[Z]?.metadata;if(ee&&typeof ee=="object"&&Object.prototype.hasOwnProperty.call(ee,L))return ee[L]}},p=f(e.id),H=f(o.id);if(p!==void 0&&H!==void 0&&p!==H)return!1}return!U||U(e,o,d)},[ye,U,L,k]),ut=R((e,o)=>{if(!ye(e)){o.preventDefault();return}o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/plain",e.id),B({draggedId:e.id,dragOverId:null,dragOverPosition:null})},[ye]),ft=R((e,o)=>{if(!q.draggedId||q.draggedId===e.id)return;o.dataTransfer.dropEffect="none";let d=o.currentTarget.getBoundingClientRect(),i=(o.clientY-d.top)/d.height,f=(e.children?.length??0)>0,p;f?i<.25?p="before":i>.75?p="after":p="child":p=i<.5?"before":"after";let H=k.byId.get(q.draggedId)?.node;if(!H||!Ce(H,e,p)){B(D=>D.dragOverId===null?D:{...D,dragOverId:null,dragOverPosition:null});return}o.preventDefault(),o.dataTransfer.dropEffect="move",B(D=>D.dragOverId===e.id&&D.dragOverPosition===p?D:{...D,dragOverId:e.id,dragOverPosition:p})},[Ce,q.draggedId,k]),ht=R(e=>{B(o=>o.dragOverId!==e.id?o:{...o,dragOverId:null,dragOverPosition:null})},[]),gt=R((e,o)=>{o.preventDefault();let d=q.draggedId,i=q.dragOverPosition;if(!d||!i||d===e.id||q.dragOverId!==e.id){B(F);return}let f=k.byId.get(d)?.node;if(!f||!Ce(f,e,i)){B(F);return}if(i==="child"){let de=k.path(d)?.target;if(!de){B(F);return}let _e=He(n,d,e.id);_e&&oe?.(_e,de,e.id),B(F);return}let p=k.path(e.id);if(!p){B(F);return}let H=p.parent?.children??n,D=H.findIndex(j=>j.id===e.id);if(D===-1){B(F);return}let $=i==="before"?D:D+1,Z=k.path(d),ee=p.parent?.id??null;if((Z?.parent?.id??null)!==ee){let j=Z?.target,de=He(n,d,ee,$);de&&j&&oe?.(de,j,ee),B(F);return}if(Z&&Z.parent===p.parent){let j=H.findIndex(de=>de.id===d);j!==-1&&j<$&&($-=1)}let te=Ye(n,d,$);if(te&&te.fromIndex!==te.toIndex&&(Se?.(te),me)){let j=_t(te.moved,te.fromIndex,te.toIndex,H);j.length>0&&me(j,{node:te.moved,type:"reorder"})}B(F)},[q,n,k,Ce,oe,me,Se]),mt=R(()=>{B(F)},[]),Ie=R((e,o,d)=>{if(O){let i=O(e);if(i.length===0)return;let f=x.nodeElementRefs.current.get(e.id);f&&ke({x:o,y:d,node:e,items:i,anchor:f});return}K?.({node:e,x:o,y:d})},[O,K,x.nodeElementRefs]),xt=R(()=>{ke(null)},[]),bt=R((e,o)=>{o.preventDefault(),Ie(e,o.clientX,o.clientY)},[Ie]),vt=R((e,o)=>{o.stopPropagation();let d=o.currentTarget.getBoundingClientRect();Ie(e,d.left,d.bottom+4)},[Ie]),Ve=R(e=>{let o=k.path(e);if(!o)return;let d=o.ancestorIds;x.setExpandedIds([...new Set([...x.expandedIds,...d])]),C.clearSearch(),xe({id:e,focus:!1})},[x,k,C.clearSearch]);Rt(u,()=>({expandAll:x.expandAll,collapseAll:x.collapseAll,expandToDepth:x.expandToDepth,getExpandedIds:()=>x.expandedIds,getSelectedNode:()=>V?k.path(V)?.target:void 0,scrollToNode:Ve,locateNode:e=>{let o=[...n],d=new Set;for(let i=0;i<o.length;i++){let f=o[i];if(!(!f||d.has(f))){if(d.add(f),e(f)){let p=k.path(f.id);return p&&x.setExpandedIds([...new Set([...x.expandedIds,...p.ancestorIds])]),C.clearSearch(),ce(f.id),xe({id:f.id,focus:!1}),f}if(f.children?.length)for(let p of f.children)o.push(p)}}}}),[x,Ve,V,n,k,C.clearSearch]);let wt=Me(()=>({...I,...G!==void 0?{maxHeight:G}:{}}),[I,G]),yt=[s.root,re!=="default"?`pde-tree-variant-${re}`:"",z].filter(Boolean).join(" ");return fe("div",{ref:ge,className:yt,style:wt,"data-size":S,"data-theme":Pe,children:[h&&a("div",{className:s.toolbar,children:h}),(w||l||v||E)&&fe("div",{className:s.searchRow,children:[w&&fe("div",{className:s.searchInputWrap,children:[a("span",{className:s.searchIcon,children:a(Wt,{})}),a("input",{className:s.searchInput,type:"search","aria-controls":Ne,placeholder:M,value:C.query,onChange:e=>pt(e.target.value),"aria-label":"Search tree"})]}),E,l&&a("button",{type:"button",className:s.iconButton,onClick:x.isAllExpanded?x.collapseAll:x.expandAll,title:x.isAllExpanded?"Collapse all":"Expand all","aria-label":x.isAllExpanded?"Collapse all":"Expand all",children:x.isAllExpanded?a(Ft,{size:16,"aria-hidden":"true"}):a($t,{size:16,"aria-hidden":"true"})}),v&&a("button",{type:"button",className:s.iconButton,onClick:y,title:"Refresh","aria-label":"Refresh",children:a(Gt,{size:14,"aria-hidden":"true"})})]}),a("div",{ref:ne,className:s.treeContainer,"data-virtualized":X||void 0,onScroll:e=>{X&&m({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight||400})},id:Ne,role:"tree",onKeyDown:ct,"aria-label":"Tree navigation",children:C.filteredNodes.length===0?a("div",{className:s.emptyState,children:C.isSearching?"No matching results":"No items"}):fe(Te,{children:[X&&a("div",{role:"presentation",style:{height:pe*ae}}),Ke.map(({node:e,depth:o,positionInSet:d,setSize:i})=>a(Zt,{node:e,depth:o,positionInSet:d,setSize:i,isFocused:e.id===st,onFocusNode:Qe,isExpanded:be.has(e.id),isSelected:V===e.id,onToggle:x.toggleNode,onSelect:lt,onNodeRef:x.setNodeElementRef,searchQuery:C.deferredQuery,showIndentGuides:he,renderIcon:_,renderLabel:J,renderSuffix:T,renderNode:Q,draggable:se,dragState:q,canDragNode:ye(e),onDragStart:ut,onDragOver:ft,onDragLeave:ht,onDrop:gt,onDragEnd:mt,showContextMenuButton:!!(O||K),activeMenuNodeId:le?.node.id??null,onContextMenu:bt,onMoreClick:vt},e.id)),X&&a("div",{role:"presentation",style:{height:(N.length-we)*ae}})]})}),le&&a(Ze,{state:le,onClose:xt},le.node.id)]})});export{$e as METHOD_LABEL_MAP,er as Tree,Le as getMethodLabel,qe as useTreeExpansion,je as useTreeSearch};
1
+ import{i as Je,j as Ae,k as Ue,p as Ye,q as He}from"../chunk-AHHDXXHL.js";import{forwardRef as Dt,memo as Ct,useCallback as R,useEffect as Fe,useImperativeHandle as Rt,useId as Et,useMemo as Me,useRef as nt,useState as ue}from"react";import{useLayoutEffect as It,useRef as Mt,useState as Ge}from"react";import{createPortal as Tt}from"react-dom";import{jsx as Re,jsxs as Xe}from"react/jsx-runtime";function Ze({state:r,onClose:t}){let u=Mt(null),[n,s]=Ge(null),[b,g]=Ge({left:r.x,top:r.y}),[P,w]=Ge({}),M=r.anchor.closest("dialog")??r.anchor.ownerDocument.body;return It(()=>{let l=r.anchor.closest(".pde-tree-root")??r.anchor,v=getComputedStyle(l),y={};for(let T=0;T<v.length;T++){let z=v.item(T);(z.startsWith("--tree-")||z.startsWith("--color-")||z.startsWith("--radius-")||z.startsWith("--font-")||z.startsWith("--shadow-"))&&(y[z]=v.getPropertyValue(z))}w(y);let h=u.current;if(!h)return;let E=()=>{let T=h.getBoundingClientRect();g({left:Math.max(8,Math.min(r.x,document.documentElement.clientWidth-T.width-8)),top:Math.max(8,Math.min(r.y,document.documentElement.clientHeight-T.height-8))})};E();let Q=typeof ResizeObserver>"u"?void 0:new ResizeObserver(E);Q?.observe(h),h.querySelector("button:not(:disabled)")?.focus();let _=T=>{T.target instanceof Node&&!h.contains(T.target)&&t()},J=T=>{T.target instanceof Node&&!h.contains(T.target)&&t()};return document.addEventListener("pointerdown",_),document.addEventListener("scroll",J,!0),window.addEventListener("resize",t),()=>{Q?.disconnect(),document.removeEventListener("pointerdown",_),document.removeEventListener("scroll",J,!0),window.removeEventListener("resize",t),h.contains(document.activeElement)&&r.anchor.isConnected&&r.anchor.focus({preventScroll:!0})}},[r,t]),Tt(Re("div",{ref:u,className:"pde-tree-contextMenu",style:{...P,...b},role:"menu","aria-label":`Actions for ${r.node.name}`,tabIndex:-1,onKeyDown:l=>{let v=u.current;if(!v)return;let y=Array.from(v.querySelectorAll("button:not(:disabled)")),h=y.indexOf(document.activeElement);if(l.key==="Escape"||l.key==="Tab"){l.key==="Escape"&&l.preventDefault(),l.stopPropagation(),t();return}let E;if(l.key==="ArrowDown")E=(h+1)%y.length;else if(l.key==="ArrowUp")E=(h-1+y.length)%y.length;else if(l.key==="Home")E=0;else if(l.key==="End")E=y.length-1;else return;l.preventDefault(),y[E]?.focus()},children:r.items.map((l,v)=>Xe("div",{role:"presentation",children:[l.separator&&Re("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),Xe("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:l.disabled,className:`pde-tree-contextMenuItem${l.danger?" pde-tree-contextMenuItemDanger":""}${n===v?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(l.confirm&&n!==v){s(v);return}t(),l.onClick(r.node)},children:[l.icon&&Re("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:l.icon}),Re("span",{children:l.confirm&&n===v?l.confirmLabel??"Confirm?":l.label})]})]},`${l.label}-${v}`))}),M)}import{useCallback as ie,useMemo as Ee,useRef as et,useState as St}from"react";function qe(r,t={}){let{defaultExpandedIds:u,defaultExpandDepth:n=1,onExpandedChange:s}=t,b=Ee(()=>u!==void 0?[...u]:n<=1?[]:Ae(r,{maxDepth:n-1,onlyWithChildren:!0}),[]),[g,P]=St(b),w=et(new Map),M=Ee(()=>Ue(r),[r]),l=Ee(()=>new Set(g),[g]),v=et(g);v.current=g;let y=Ee(()=>M.length>0&&M.every(I=>l.has(I)),[M,l]),h=ie(I=>{v.current=I,P(I),s?.(I)},[s]),E=ie(I=>{let S=v.current,re=S.includes(I)?S.filter(he=>he!==I):[...S,I];h(re)},[h]),Q=ie(()=>{h([...M])},[M,h]),_=ie(()=>{h([])},[h]),J=ie(I=>{let S=Ae(r,{maxDepth:I,onlyWithChildren:!0});h(S)},[r,h]),T=ie((I,S)=>{S?w.current.set(I,S):w.current.delete(I)},[]),z=ie(I=>{let S=w.current.get(I);S&&S.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:g,setExpandedIds:h,toggleNode:E,expandAll:Q,collapseAll:_,expandToDepth:J,isAllExpanded:y,allBranchIds:M,setNodeElementRef:T,scrollToNode:z,nodeElementRefs:w}}import{useCallback as tt,useDeferredValue as kt,useMemo as Nt,useState as rt}from"react";function $e(r){let[t,u]=rt(""),n=kt(t),[s,b]=rt(null),g=n.trim().length>0,P=Nt(()=>g?Je(r,{query:n,keepAncestors:!0}):r,[r,n,g]),w=tt((l,v)=>{let y=t.trim(),h=l.trim();!y&&h&&b(v),y&&!h&&b(null),u(l)},[t]),M=tt(()=>{u(""),b(null)},[]);return{query:t,deferredQuery:n,isSearching:g,filteredNodes:P,expandedBeforeSearch:s,handleQueryChange:w,clearSearch:M}}function ot(r){let t=new Map,u=new Set,n=r.map(s=>({node:s,parentId:null})).reverse();for(;n.length;){let s=n.pop();if(u.has(s.node)||t.has(s.node.id))continue;u.add(s.node),t.set(s.node.id,s);let b=s.node.children??[];for(let g=b.length-1;g>=0;g--)n.push({node:b[g],parentId:s.node.id})}return{byId:t,path(s){let b=t.get(s);if(!b)return null;let g=[b.node],P=b.parentId;for(;P!==null;){let w=t.get(P);if(!w)break;g.push(w.node),P=w.parentId}return g.reverse(),{nodes:g,target:b.node,parent:g[g.length-2],ancestorIds:g.slice(0,-1).map(w=>w.id)}}}}var je={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function Le(r){let t=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(je,t)?je[t]:t.slice(0,4).toUpperCase()}import{LuBraces as at,LuChevronDown as Lt,LuChevronRight as Pt,LuEllipsisVertical as Bt,LuFolder as zt,LuFolderOpen as Ot,LuGripVertical as At,LuList as Ht,LuRefreshCw as Gt,LuSearch as qt,LuZap as $t}from"react-icons/lu";import{MdOutlineUnfoldMore as jt,MdUnfoldLess as Ft}from"react-icons/md";import{Fragment as Te,jsx as a,jsxs as fe}from"react/jsx-runtime";var c={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Qt({expanded:r}){return a("span",{className:c.expandIcon,children:r?a(Lt,{size:14}):a(Pt,{size:14})})}function Wt(){return a(qt,{size:14,"aria-hidden":"true"})}function Kt(){return a(At,{size:14,"aria-hidden":"true"})}function Vt(){return a(Bt,{size:14,"aria-hidden":"true"})}function dt(r){let u=r.metadata?.jsonPath;if(Array.isArray(u)&&u.length>0&&u.every(n=>typeof n=="string"||typeof n=="number"&&Number.isInteger(n)&&n>=0))return u}function _t(r,t,u,n){let s=dt(r);if(!s||s.length===0)return[];let b=JSON.stringify(s.slice(0,-1));if(!n.every((P,w)=>{let M=dt(P);return M&&M[M.length-1]===w&&JSON.stringify(M.slice(0,-1))===b}))return[];let g=s.slice(0,-1);return[{op:"move",from:[...g,t],path:[...g,u]}]}function Jt({text:r,query:t}){if(!t)return a(Te,{children:r});let u=r.toLowerCase(),n=t.toLowerCase(),s=u.indexOf(n);return s===-1?a(Te,{children:r}):fe(Te,{children:[r.slice(0,s),a("span",{className:c.highlight,children:r.slice(s,s+t.length)}),r.slice(s+t.length)]})}var it={get:c.methodGet,post:c.methodPost,put:c.methodPut,patch:c.methodPatch,delete:c.methodDelete};function Ut({method:r}){let t=r.toLowerCase(),u=Object.prototype.hasOwnProperty.call(it,t)?it[t]:c.methodOther,n=Le(r);return a("span",{className:`${c.methodBadge} ${u}`,children:n})}var F={draggedId:null,dragOverId:null,dragOverPosition:null};function Yt(r,t){if(r.isFocused!==t.isFocused||r.positionInSet!==t.positionInSet||r.setSize!==t.setSize||r.node!==t.node||r.depth!==t.depth||r.isExpanded!==t.isExpanded||r.isSelected!==t.isSelected||r.searchQuery!==t.searchQuery||r.showIndentGuides!==t.showIndentGuides||r.canDragNode!==t.canDragNode||r.draggable!==t.draggable||r.showContextMenuButton!==t.showContextMenuButton||r.activeMenuNodeId===r.node.id!=(t.activeMenuNodeId===t.node.id))return!1;let u=r.dragState.draggedId===r.node.id,n=t.dragState.draggedId===t.node.id;if(u!==n)return!1;let s=r.dragState.dragOverId===r.node.id,b=t.dragState.dragOverId===t.node.id;return!(s!==b||s&&b&&r.dragState.dragOverPosition!==t.dragState.dragOverPosition||r.renderIcon!==t.renderIcon||r.renderLabel!==t.renderLabel||r.renderSuffix!==t.renderSuffix||r.renderNode!==t.renderNode||r.onToggle!==t.onToggle||r.onSelect!==t.onSelect||r.onNodeRef!==t.onNodeRef||r.onDragStart!==t.onDragStart||r.onDragOver!==t.onDragOver||r.onDragLeave!==t.onDragLeave||r.onDrop!==t.onDrop||r.onDragEnd!==t.onDragEnd||r.onContextMenu!==t.onContextMenu||r.onMoreClick!==t.onMoreClick)}function Xt(r){let{node:t,depth:u,onToggle:n,onSelect:s,onNodeRef:b,searchQuery:g,showIndentGuides:P,renderIcon:w,renderLabel:M,renderSuffix:l,renderNode:v,draggable:y,dragState:h,canDragNode:E,onDragStart:Q,onDragOver:_,onDragLeave:J,onDrop:T,onDragEnd:z,showContextMenuButton:I,activeMenuNodeId:S,onContextMenu:re,onMoreClick:he}=r,{isExpanded:G,isSelected:ge}=r,se=(t.children?.length??0)>0,L=se,Se=!se,oe=h.draggedId===t.id,W=h.dragOverId===t.id,U=W?h.dragOverPosition:null,O=t.metadata,K=typeof O?.method=="string"?O.method:void 0,me=O?.deprecated===!0,Pe=O?.required===!0,A=typeof O?.kind=="string"?O.kind:void 0,V={node:t,depth:u,isExpanded:G,isSelected:ge,isBranch:L,isLeaf:Se,isDragging:oe,isDragOver:W,dragOverPosition:U},ce=R(()=>{L?n(t.id):s(t)},[L,t,s,n]),q=R(m=>{m.target===m.currentTarget&&(m.key==="Enter"||m.key===" "?(m.preventDefault(),ce()):(m.key==="ArrowRight"&&L&&!G||m.key==="ArrowLeft"&&L&&G)&&(m.preventDefault(),m.stopPropagation(),n(t.id)))},[ce,L,G,t.id,n]),B=w?w(V):K?null:a("span",{className:c.nodeIcon,children:A==="section"&&O?.section==="components"?a(at,{size:14}):A==="section"&&O?.section==="webhooks"?a($t,{size:14}):A==="schema"||A==="component"||A==="object"?a(at,{size:14}):A==="array"||A==="items"?a(Ht,{size:14}):L?G?a(Ot,{size:14}):a(zt,{size:14}):a("span",{className:c.primitiveDot})}),le=M?M(V):a("span",{className:`${c.nodeLabel} ${L?c.nodeLabelBranch:""} ${me?c.deprecatedLabel:""}`,children:a(Jt,{text:t.name,query:g})}),ke=l?l(V):null,ne=[c.nodeRow,L?c.branchControl:c.leafItem,ge?c.nodeRowSelected:"",oe?c.nodeDragging:"",W&&U==="before"?c.dropIndicatorBefore:"",W&&U==="after"?c.dropIndicatorAfter:"",W&&U==="child"?c.dropIndicatorChild:"",A?`pde-tree-kind-${A}`:""].filter(Boolean).join(" "),Ne=R(m=>b(t.id,m),[t.id,b]),k=fe("div",{ref:Ne,className:ne,style:{paddingLeft:`${Math.min(u,20)*12+4}px`},"data-node-id":t.id,role:"treeitem","aria-expanded":L?G:void 0,"aria-label":K?`${Le(K)} ${t.name}`:t.name,"aria-selected":ge,"aria-level":u+1,"aria-posinset":r.positionInSet,"aria-setsize":r.setSize,"aria-grabbed":y&&E?oe:void 0,tabIndex:r.isFocused?0:-1,onFocus:()=>r.onFocusNode(t.id),onClick:ce,onKeyDown:q,onContextMenu:I?m=>re(t,m):void 0,onDragOver:y?m=>_(t,m):void 0,onDragLeave:y?()=>J(t):void 0,onDrop:y?m=>T(t,m):void 0,children:[P&&u>1&&Array.from({length:Math.min(u-1,20)},(m,Y)=>a("span",{className:c.indentGuide,style:{left:`${(Y+1)*12+11}px`}},`guide-${Y}`)),y&&E?a("span",{className:c.dragHandle,style:{left:`${Math.min(u,20)*12+4}px`},draggable:!0,onDragStart:m=>Q(t,m),onDragEnd:z,title:"Drag to reorder","aria-label":"Drag to reorder",children:a(Kt,{})}):null,L?a(Qt,{expanded:G}):K&&a(Ut,{method:K}),B,le,Pe&&a("span",{className:c.requiredDot,title:"Required"}),a("span",{className:c.nodeSuffix,children:ke}),I&&a("button",{type:"button",className:[c.moreButton,S===t.id?c.moreButtonActive:""].filter(Boolean).join(" "),onClick:m=>he(t,m),title:"More actions","aria-label":`More actions for ${t.name}`,"aria-haspopup":"menu","aria-expanded":S===t.id,tabIndex:-1,children:a(Vt,{})})]}),De=v?v(V,k):k;return a(Te,{children:De})}var Zt=Ct(Xt,Yt),er=Dt(function(t,u){let{nodes:n,onSelect:s,onExpandedChange:b,defaultExpandedIds:g,defaultExpandDepth:P=1,searchable:w=!1,searchPlaceholder:M="Search...",showExpandAll:l=!1,showRefresh:v=!1,onRefresh:y,toolbar:h,searchRowExtra:E,renderNode:Q,renderIcon:_,renderLabel:J,renderSuffix:T,className:z,style:I,size:S="sm",variant:re="default",showIndentGuides:he=!0,maxHeight:G,rootRef:ge,draggable:se=!1,dragGroupKey:L,onReorder:Se,onMove:oe,canDrag:W,canDrop:U,contextMenuItems:O,onContextMenuOpen:K,onPatch:me,theme:Pe,virtualized:A="auto"}=t,[V,ce]=ue(null),[q,B]=ue(F),[le,ke]=ue(null),ne=nt(null),Ne=Et(),k=Me(()=>ot(n),[n]),[De,m]=ue({top:0,height:400}),[Y,xe]=ue(null),[Be,Qe]=ue(null),x=qe(n,{defaultExpandedIds:g,defaultExpandDepth:P,onExpandedChange:b}),C=$e(n),We=C.isSearching?x.allBranchIds:C.expandedBeforeSearch??x.expandedIds,be=Me(()=>new Set(We),[We]),N=Me(()=>{let e=[],o=new Set,d=C.filteredNodes.map((i,f,p)=>({node:i,depth:0,parentId:null,positionInSet:f+1,setSize:p.length})).reverse();for(;d.length;){let i=d.pop();if(!o.has(i.node.id)&&(o.add(i.node.id),e.push(i),be.has(i.node.id))){let f=i.node.children??[];for(let p=f.length-1;p>=0;p--)d.push({node:f[p],depth:i.depth+1,parentId:i.node.id,positionInSet:p+1,setSize:f.length})}}return e},[C.filteredNodes,be]),ve=Me(()=>new Map(N.map((e,o)=>[e.node.id,o])),[N]),ae=S==="xs"?24:S==="md"?32:28,X=A!==!1&&re!=="doc"&&!Q&&(A===!0||N.length>500),pe=X?Math.max(0,Math.min(Math.floor(De.top/ae)-8,N.length-1)):0,we=X?Math.min(N.length,pe+Math.ceil(De.height/ae)+16):N.length,Ke=N.slice(pe,we);Fe(()=>{let e=ne.current;if(!e)return;let o=()=>m({top:e.scrollTop,height:e.clientHeight||400});o();let d=typeof ResizeObserver>"u"?void 0:new ResizeObserver(o);return d?.observe(e),()=>d?.disconnect()},[]),Fe(()=>{if(!Y)return;let e=ve.get(Y.id);if(e===void 0){xe(null);return}let o=ne.current;if(X&&o&&(e<pe||e>=we)){let i=o.clientHeight||400,f=Math.min(e*ae,Math.max(0,N.length*ae-i));o.scrollTop=f,m(p=>({...p,top:o.scrollTop}));return}let d=x.nodeElementRefs.current.get(Y.id);Y.focus&&d?.focus({preventScroll:!0}),d?.scrollIntoView?.({block:"nearest"}),xe(null)},[Y,ve,X,ae,pe,we,N.length,x.nodeElementRefs]);let ze=Be===null?void 0:ve.get(Be),st=ze!==void 0&&ze>=pe&&ze<we?Be:Ke[0]?.node.id,Oe=nt({query:"",time:0}),ct=e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute("role")!=="treeitem")return;let o=ve.get(e.target.dataset.nodeId??"");if(o===void 0)return;let d=N[o],i=o;if(e.key==="ArrowDown")i=Math.min(o+1,N.length-1);else if(e.key==="ArrowUp")i=Math.max(0,o-1);else if(e.key==="Home")i=0;else if(e.key==="End")i=N.length-1;else if(e.key==="ArrowRight"&&d.node.children?.length&&be.has(d.node.id))i=Math.min(o+1,N.length-1);else if(e.key==="ArrowLeft"&&(!d.node.children?.length||!be.has(d.node.id)))i=ve.get(d.parentId??"")??o;else if(e.key==="ContextMenu"||e.shiftKey&&e.key==="F10"){let p=e.target.getBoundingClientRect();e.preventDefault(),Ie(d.node,p.left+24,p.bottom);return}else if(e.key.length===1&&e.key!==" "&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let p=Date.now(),H=p-Oe.current.time<600?Oe.current.query+e.key.toLowerCase():e.key.toLowerCase();Oe.current={query:H,time:p};for(let D=1;D<=N.length;D++){let j=(o+D)%N.length;if(N[j].node.name.toLowerCase().startsWith(H)){i=j;break}}}else return;e.preventDefault();let f=N[i].node.id;Qe(f),xe({id:f,focus:!0})};Fe(()=>{ne.current&&(ne.current.scrollTop=0),m(e=>({...e,top:0}))},[C.deferredQuery]);let lt=R(e=>{ce(e.id),s?.(e)},[s]),pt=R(e=>{!e.trim()&&C.expandedBeforeSearch&&x.setExpandedIds(C.expandedBeforeSearch),C.handleQueryChange(e,x.expandedIds)},[x.expandedIds,C]),ye=R(e=>!se||e.metadata?.kind==="section"?!1:W?W(e):!0,[W,se]),Ce=R((e,o,d)=>{if(e.id===o.id||!ye(e)||k.path(o.id)?.ancestorIds.includes(e.id))return!1;if(L){let f=D=>{let j=k.path(D)?.nodes??[];for(let Z=j.length-1;Z>=0;Z--){let ee=j[Z]?.metadata;if(ee&&typeof ee=="object"&&Object.prototype.hasOwnProperty.call(ee,L))return ee[L]}},p=f(e.id),H=f(o.id);if(p!==void 0&&H!==void 0&&p!==H)return!1}return!U||U(e,o,d)},[ye,U,L,k]),ut=R((e,o)=>{if(!ye(e)){o.preventDefault();return}o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/plain",e.id),B({draggedId:e.id,dragOverId:null,dragOverPosition:null})},[ye]),ft=R((e,o)=>{if(!q.draggedId||q.draggedId===e.id)return;o.dataTransfer.dropEffect="none";let d=o.currentTarget.getBoundingClientRect(),i=(o.clientY-d.top)/d.height,f=(e.children?.length??0)>0,p;f?i<.25?p="before":i>.75?p="after":p="child":p=i<.5?"before":"after";let H=k.byId.get(q.draggedId)?.node;if(!H||!Ce(H,e,p)){B(D=>D.dragOverId===null?D:{...D,dragOverId:null,dragOverPosition:null});return}o.preventDefault(),o.dataTransfer.dropEffect="move",B(D=>D.dragOverId===e.id&&D.dragOverPosition===p?D:{...D,dragOverId:e.id,dragOverPosition:p})},[Ce,q.draggedId,k]),ht=R(e=>{B(o=>o.dragOverId!==e.id?o:{...o,dragOverId:null,dragOverPosition:null})},[]),gt=R((e,o)=>{o.preventDefault();let d=q.draggedId,i=q.dragOverPosition;if(!d||!i||d===e.id||q.dragOverId!==e.id){B(F);return}let f=k.byId.get(d)?.node;if(!f||!Ce(f,e,i)){B(F);return}if(i==="child"){let de=k.path(d)?.target;if(!de){B(F);return}let _e=He(n,d,e.id);_e&&oe?.(_e,de,e.id),B(F);return}let p=k.path(e.id);if(!p){B(F);return}let H=p.parent?.children??n,D=H.findIndex($=>$.id===e.id);if(D===-1){B(F);return}let j=i==="before"?D:D+1,Z=k.path(d),ee=p.parent?.id??null;if((Z?.parent?.id??null)!==ee){let $=Z?.target,de=He(n,d,ee,j);de&&$&&oe?.(de,$,ee),B(F);return}if(Z&&Z.parent===p.parent){let $=H.findIndex(de=>de.id===d);$!==-1&&$<j&&(j-=1)}let te=Ye(n,d,j);if(te&&te.fromIndex!==te.toIndex&&(Se?.(te),me)){let $=_t(te.moved,te.fromIndex,te.toIndex,H);$.length>0&&me($,{node:te.moved,type:"reorder"})}B(F)},[q,n,k,Ce,oe,me,Se]),mt=R(()=>{B(F)},[]),Ie=R((e,o,d)=>{if(O){let i=O(e);if(i.length===0)return;let f=x.nodeElementRefs.current.get(e.id);f&&ke({x:o,y:d,node:e,items:i,anchor:f});return}K?.({node:e,x:o,y:d})},[O,K,x.nodeElementRefs]),xt=R(()=>{ke(null)},[]),bt=R((e,o)=>{o.preventDefault(),Ie(e,o.clientX,o.clientY)},[Ie]),vt=R((e,o)=>{o.stopPropagation();let d=o.currentTarget.getBoundingClientRect();Ie(e,d.left,d.bottom+4)},[Ie]),Ve=R(e=>{let o=k.path(e);if(!o)return;let d=o.ancestorIds;x.setExpandedIds([...new Set([...x.expandedIds,...d])]),C.clearSearch(),xe({id:e,focus:!1})},[x,k,C.clearSearch]);Rt(u,()=>({expandAll:x.expandAll,collapseAll:x.collapseAll,expandToDepth:x.expandToDepth,getExpandedIds:()=>x.expandedIds,getSelectedNode:()=>V?k.path(V)?.target:void 0,scrollToNode:Ve,locateNode:e=>{let o=[...n],d=new Set;for(let i=0;i<o.length;i++){let f=o[i];if(!(!f||d.has(f))){if(d.add(f),e(f)){let p=k.path(f.id);return p&&x.setExpandedIds([...new Set([...x.expandedIds,...p.ancestorIds])]),C.clearSearch(),ce(f.id),xe({id:f.id,focus:!1}),f}if(f.children?.length)for(let p of f.children)o.push(p)}}}}),[x,Ve,V,n,k,C.clearSearch]);let wt=Me(()=>({...I,...G!==void 0?{maxHeight:G}:{}}),[I,G]),yt=[c.root,re!=="default"?`pde-tree-variant-${re}`:"",z].filter(Boolean).join(" ");return fe("div",{ref:ge,className:yt,style:wt,"data-size":S,"data-theme":Pe,children:[h&&a("div",{className:c.toolbar,children:h}),(w||l||v||E)&&fe("div",{className:c.searchRow,children:[w&&fe("div",{className:c.searchInputWrap,children:[a("span",{className:c.searchIcon,children:a(Wt,{})}),a("input",{className:c.searchInput,type:"search","aria-controls":Ne,placeholder:M,value:C.query,onChange:e=>pt(e.target.value),"aria-label":"Search tree"})]}),E,l&&a("button",{type:"button",className:c.iconButton,onClick:x.isAllExpanded?x.collapseAll:x.expandAll,title:x.isAllExpanded?"Collapse all":"Expand all","aria-label":x.isAllExpanded?"Collapse all":"Expand all",children:x.isAllExpanded?a(Ft,{size:16,"aria-hidden":"true"}):a(jt,{size:16,"aria-hidden":"true"})}),v&&a("button",{type:"button",className:c.iconButton,onClick:y,title:"Refresh","aria-label":"Refresh",children:a(Gt,{size:14,"aria-hidden":"true"})})]}),a("div",{ref:ne,className:c.treeContainer,"data-virtualized":X||void 0,onScroll:e=>{X&&m({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight||400})},id:Ne,role:"tree",onKeyDown:ct,"aria-label":"Tree navigation",children:C.filteredNodes.length===0?a("div",{className:c.emptyState,children:C.isSearching?"No matching results":"No items"}):fe(Te,{children:[X&&a("div",{role:"presentation",style:{height:pe*ae}}),Ke.map(({node:e,depth:o,positionInSet:d,setSize:i})=>a(Zt,{node:e,depth:o,positionInSet:d,setSize:i,isFocused:e.id===st,onFocusNode:Qe,isExpanded:be.has(e.id),isSelected:V===e.id,onToggle:x.toggleNode,onSelect:lt,onNodeRef:x.setNodeElementRef,searchQuery:C.deferredQuery,showIndentGuides:he,renderIcon:_,renderLabel:J,renderSuffix:T,renderNode:Q,draggable:se,dragState:q,canDragNode:ye(e),onDragStart:ut,onDragOver:ft,onDragLeave:ht,onDrop:gt,onDragEnd:mt,showContextMenuButton:!!(O||K),activeMenuNodeId:le?.node.id??null,onContextMenu:bt,onMoreClick:vt},e.id)),X&&a("div",{role:"presentation",style:{height:(N.length-we)*ae}})]})}),le&&a(Ze,{state:le,onClose:xt},le.node.id)]})});export{je as METHOD_LABEL_MAP,er as Tree,Le as getMethodLabel,qe as useTreeExpansion,$e as useTreeSearch};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerduck/tree",
3
- "version": "0.7.10",
3
+ "version": "0.7.14",
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",
@@ -1 +0,0 @@
1
- import{g as f,l as X}from"./chunk-AHHDXXHL.js";function E(e,t,a){let o=new Map;for(let d of e)o.has(d.name)?a.push(`Duplicate tag "${d.name}" was ignored.`):o.set(d.name,d);let n=new Map;for(let d of o.values())d.parent&&!o.has(d.parent)&&a.push(`Tag "${d.name}" references unknown parent "${d.parent}", treating as root.`),n.set(d.name,d.parent&&o.has(d.parent)?d.parent:null);let c=new Set;for(let d of o.keys()){let p=new Set,s=d;for(;s!==null&&!c.has(s);){if(p.has(s)){a.push(`Circular tag reference detected at "${s}". Breaking cycle.`),n.set(s,null);break}p.add(s),s=n.get(s)??null}for(let u of p)c.add(u)}let i=new Map(Array.from(o,([d,p])=>[d,t(p)])),r=[];for(let[d,p]of i){let s=n.get(d);if(s==null)r.push(p);else{let u=i.get(s);(u.children??(u.children=[])).push(p)}}for(let d of i.values())d.children&&(d.children=f(d.children));return f(r)}var W=["get","put","post","delete","options","head","patch","trace"],ne={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function O(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function te(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function B(e){return typeof e=="boolean"?e:void 0}function M(e){return Array.isArray(e)?e:void 0}function C(e,t){return t?!1:B(e["x-scalar-ignore"])===!0||B(e["x-internal"])===!0}function A(e){return te(e["x-order"])}function re(e){return w(e["x-displayName"])}function oe(e){let t=O(e.paths);if(!t)return[];let a=[];for(let[o,n]of Object.entries(t)){let c=O(n);if(c)for(let i of W){let r=c[i];if(r==null)continue;let d=O(r);if(!d)continue;let p=w(d.operationId),s=w(d.summary),u=M(d.tags)?.filter(y=>typeof y=="string").map(y=>y.trim()).filter(y=>y.length>0)??[],g=s??p??`${i.toUpperCase()} ${o}`,m=p??`${i}:${o}`,T=`/paths/${encodeURIComponent(o)}/${i}`;a.push({id:m,path:o,method:i,name:g,summary:s,operationId:p,deprecated:B(d.deprecated)===!0,tags:u,pointer:T,raw:d})}}return a}function ae(e){let t=M(e.tags);if(!t)return[];let a=[];for(let o of t){let n=O(o),c=w(n?.name);!c||!n||a.push({name:c,displayName:re(n)??c,description:w(n.description),parent:w(n.parent),order:A(n),raw:n})}return a}function se(e){return e.some(t=>t.parent!==void 0)}function ie(e,t,a,o){let n=new Map;for(let s of t){if(C(s.raw,a.showInternal))continue;let u=s.tags.length>0?s.tags:["Other"];for(let g of u){let m=n.get(g)??[];m.push(s),n.set(g,m)}}let c=s=>{let g=(n.get(s.name)??[]).map(m=>({id:`op:${s.name}:${m.id}`,name:m.name,order:A(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${s.name}`,name:s.displayName,order:s.order,children:f(g),metadata:{source:"oas32-parent",kind:"tag"}}},i=new Set(e.map(s=>s.name)),r=[...e];for(let s of n.keys())s!=="Other"&&!i.has(s)&&r.push({name:s,displayName:s,raw:{}});let d=E(r,c,o),p=n.get("Other")??[];if(p.length>0&&!e.some(s=>s.name==="Other")){let s=p.map(u=>({id:`op:Other:${u.id}`,name:u.name,order:A(u.raw),metadata:{method:u.method,path:u.path,operationId:u.operationId,deprecated:u.deprecated,summary:u.summary,pointer:u.pointer,source:"fallback",kind:"operation"}}));d.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(s),metadata:{source:"fallback",kind:"tag"}})}return f(d)}function de(e){let t=M(e["x-tagGroups"]);if(!t)return[];let a=(o,n)=>{let c=O(o),i=w(c?.name),r=M(c?.tags)?.filter(p=>typeof p=="string").map(p=>p.trim()).filter(p=>p.length>0)??[];if(!i)return null;let d=M(c?.groups)?.map((p,s)=>a(p,s)).filter(p=>p!==null)??[];return{name:i,tags:r,groups:d.length>0?d:void 0,order:A(c??{})??n}};return t.map((o,n)=>a(o,n)).filter(o=>o!==null)}function ce(e,t,a,o){let n=new Map;for(let p of t)n.set(p.name,p.displayName);let c=new Map;for(let p of a)if(!C(p.raw,o.showInternal))for(let s of p.tags){let u=c.get(s)??[];u.push(p),c.set(s,u)}let i=p=>(c.get(p)??[]).map(u=>({id:`op:${p}:${u.id}`,name:u.name,order:A(u.raw),metadata:{method:u.method,path:u.path,operationId:u.operationId,deprecated:u.deprecated,summary:u.summary,pointer:u.pointer,source:"tag-group",kind:"operation"}})),r=p=>({id:`tag:${p}`,name:n.get(p)??p,children:f(i(p)),metadata:{source:"tag-group",kind:"tag"}}),d=p=>{let s=[];for(let u of p.tags)c.get(u)?.length&&s.push(r(u));for(let u of p.groups??[])s.push(d(u));return{id:`tag-group:${p.name}`,name:p.name,order:p.order,children:f(s),metadata:{source:"tag-group",kind:"tag-group"}}};return f(e.map(d))}function pe(e,t,a){let o=new Map,n=new Map;for(let r=0;r<e.length;r+=1){let d=e[r];n.set(d.name,d.order??r)}for(let r of t){if(C(r.raw,a.showInternal))continue;let d=r.tags.length>0?r.tags:["Other"];for(let p of d){let s=o.get(p)??[];s.push(r),o.set(p,s)}}let c=new Map;for(let r of e)c.set(r.name,r.displayName);let i=[];for(let[r,d]of o){let p=d.map(s=>({id:`op:${r}:${s.id}`,name:s.name,order:A(s.raw),metadata:{method:s.method,path:s.path,operationId:s.operationId,deprecated:s.deprecated,summary:s.summary,pointer:s.pointer,source:"tag",kind:"operation"}}));i.push({id:`tag:${r}`,name:c.get(r)??r,order:r==="Other"?Number.MAX_SAFE_INTEGER:n.get(r),children:f(p),metadata:{source:"tag",kind:"tag"}})}return f(i)}function ue(e,t){if(!t.showComponents)return;let a=O(e.components),o=O(a?.schemas);if(!o)return;let n=[];for(let[c,i]of Object.entries(o)){let r=O(i);!r||C(r,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:A(r),metadata:{pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"section",kind:"section",section:"components"}}}function me(e,t){if(!t.showWebhooks)return;let a=O(e.webhooks);if(!a)return;let o=[];for(let[n,c]of Object.entries(a)){let i=O(c);if(i)for(let r of W){let d=i[r],p=O(d);if(!p||C(p,t.showInternal))continue;let s=w(p.operationId),u=w(p.summary),g=u??s??`${r.toUpperCase()} ${n}`;o.push({id:`webhook:${n}:${r}`,name:g,order:A(p),metadata:{method:r,path:n,operationId:s,deprecated:B(p.deprecated)===!0,summary:u,pointer:`/webhooks/${encodeURIComponent(n)}/${r}`,source:"tag",kind:"webhook"}})}}if(o.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}}function ge(e,t={}){let a={...ne,...t},o=[],n=O(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=oe(n),i=ae(n),r;if(se(i))r=ie(i,c,a,o);else{let g=de(n);g.length>0?r=ce(g,i,c,a):r=pe(i,c,a)}let d=me(n,a),p=ue(n,a),u=[{id:"section:apis",name:"APIs",children:r,metadata:{kind:"section",source:"section",section:"apis"},order:0},...d?[d]:[],...p?[p]:[]];return{root:{id:"root",name:"OpenAPI",children:f(u),metadata:{kind:"root"}},warnings:o}}var z={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},U={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},V=new Set(["string","number","integer","boolean","null"]);function x(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function F(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Y(e){return typeof e=="boolean"?e:void 0}function j(e){return Array.isArray(e)?e:void 0}function fe(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(a=>typeof a=="string"))return t}function le(e){return e?Array.isArray(e)?e.every(t=>V.has(t)):V.has(e):!1}function he(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Q(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,a=>`\\${a}`)).join(".")||"root"}function P(e,t,a,o,n,c){n.remaining--;let i=fe(t),r=F(t.format),d=F(t.description),p=Y(t.deprecated)===!0,s=he(i),u={jsonPath:a,type:i,format:r,required:c,deprecated:p,description:d,kind:s},g=F(t.$ref);if(g){if(n.refStack.has(g))return n.warnings.push(`Circular $ref detected at ${a.join(".")}: ${g}. Breaking recursion.`),{id:S(a),name:e,metadata:{...u,kind:"ref",isLeaf:!0}};n.refStack.add(g)}let m,T=le(i),y=n.activeSchemas.has(t);if(y&&n.warnings.push(`Circular schema object detected at ${S(a)}.`),y||o>=n.options.maxDepth||n.remaining<=0)return g&&n.refStack.delete(g),{id:S(a),name:e,metadata:{...u,isLeaf:!0}};n.activeSchemas.add(t);let k=x(t.properties);if(k){let R=j(t.required)??[],N=new Set(R.filter(b=>typeof b=="string")),J=[];for(let[b,$]of Object.entries(k)){if(n.remaining<=0)break;let I=x($);I&&(!n.options.showDeprecated&&Y(I.deprecated)===!0||J.push(P(b,I,[...a,"properties",b],o+1,n,N.has(b))))}m=[...m??[],...f(J)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&i==="array"){let R=x(t.items);if(R){let N=P("items",R,[...a,"items"],o+1,n,!1);m=[...m??[],N],T=!1}else u.hasItems=!1}if(n.options.expandCombinators){let R=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:N,kind:J}of R){if(n.remaining<=0)break;let b=j(t[N]);if(!b?.length)continue;n.remaining--;let $=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ee=b[D],H=x(ee);if(!H){n.remaining--,$.push({id:S([...a,N,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...a,N,String(D)],kind:"unknown",isLeaf:!0}});continue}$.push(P(`[${D}]`,H,[...a,N,String(D)],o+1,n,!1))}let I={id:S([...a,N]),name:N,children:f($),metadata:{jsonPath:[...a,N],kind:J}};m=[...m??[],I],T=!1}}return j(t.enum)?.length&&!m?.length&&(u.kind="enum",T=!0),g&&n.refStack.delete(g),n.activeSchemas.delete(t),{id:S(a),name:e,order:Object.prototype.hasOwnProperty.call(z,e)?z[e]:void 0,metadata:{...u,isLeaf:T},children:m}}function Te(e,t={}){let a={...U,...t};a.maxDepth=Number.isFinite(a.maxDepth)?Math.min(128,Math.max(0,Math.trunc(a.maxDepth))):U.maxDepth,a.maxNodes=Number.isFinite(a.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(a.maxNodes))):U.maxNodes;let o=[],n=x(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let c={options:a,warnings:o,refStack:new Set,activeSchemas:new Set,remaining:a.maxNodes},i=P("root",n,[],0,c,!0);return c.remaining<=0&&o.push(`Schema node limit (${a.maxNodes}) reached; remaining branches were omitted.`),{root:i,warnings:o}}function Oe(e,t){if(t.length===0)return e;let a=JSON.stringify(t),o=[e],n=new Set;for(let c=0;c<o.length;c++){let i=o[c];if(!i||n.has(i))continue;if(n.add(i),JSON.stringify(i.metadata?.jsonPath)===a)return i;for(let d of i.children??[])o.push(d)}}function Ne(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Q(e.type)} (${e.format})`:Q(e.type)}var ye=["get","put","post","delete","options","head","patch","trace"],be={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function G(e){return typeof e=="boolean"?e:void 0}function L(e){return Array.isArray(e)?e:void 0}function _(e,t){return t?!1:G(e["x-scalar-ignore"])===!0||G(e["x-internal"])===!0}function K(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function we(e){return h(e["x-displayName"])}function ke(e,t){let a=[];for(let o of e){let n=l(o);if(!n)continue;let c=h(n.name),i=h(n.in);if(!c||!i)continue;let r=`${i}:${c}`;a.push({id:`${t}/parameters/${encodeURIComponent(r)}`,name:c,metadata:{paramIn:i,required:G(n.required)===!0,description:h(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return f(a)}function De(e,t){let a=[];for(let[o,n]of Object.entries(e)){let c=l(n);if(!c)continue;let i=h(c.description),r=l(c.content),d=[];if(r)for(let[p]of Object.entries(r))d.push({id:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,name:p,metadata:{contentType:p,pointer:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,kind:"content"}});a.push({id:`${t}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:i,pointer:`${t}/responses/${encodeURIComponent(o)}`,kind:"response"},children:d.length>0?d:void 0})}return f(a)}function Ae(e,t){let a=[],o=L(e.parameters);if(o?.length){let i=ke(o,t);i.length>0&&a.push({id:`${t}/parameters`,name:"Parameters",children:i,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=l(e.requestBody);if(n){let i=l(n.content),r=[];if(i)for(let[d]of Object.entries(i))r.push({id:`${t}/requestBody/content/${encodeURIComponent(d)}`,name:d,metadata:{contentType:d,pointer:`${t}/requestBody/content/${encodeURIComponent(d)}`,kind:"content"}});a.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:h(n.description),required:G(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:r.length>0?r:void 0})}let c=l(e.responses);if(c){let i=De(c,t);i.length>0&&a.push({id:`${t}/responses`,name:"Responses",children:i,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return a}function Re(e){let t=l(e.paths);if(!t)return[];let a=[];for(let[o,n]of Object.entries(t)){let c=l(n);if(c)for(let i of ye){let r=c[i],d=l(r);if(!d)continue;let p=h(d.operationId),s=h(d.summary),u=h(d.description),g=L(d.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],m=s??p??`${i.toUpperCase()} ${o}`,T=p??`${i}:${o}`,y=`/paths/${encodeURIComponent(o)}/${i}`;a.push({id:T,path:o,method:i,name:m,summary:s,description:u,operationId:p,deprecated:G(d.deprecated)===!0,tags:g,pointer:y,raw:d})}}return a}function Se(e){let t=L(e.tags);if(!t)return[];let a=[];for(let o of t){let n=l(o),c=h(n?.name);!c||!n||a.push({name:c,displayName:we(n)??c,description:h(n.description),parent:h(n.parent),order:K(n)})}return a}function $e(e){return e.some(t=>t.parent!==void 0)}function q(e,t,a,o){let n=t.expandOperationDetails?Ae(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:K(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:a,kind:"operation"},children:n&&n.length>0?n:void 0}}function Ie(e,t,a,o){let n=new Map;for(let s of t){if(_(s.raw,a.showInternal))continue;let u=s.tags.length>0?s.tags:["Other"];for(let g of u){let m=n.get(g)??[];m.push(s),n.set(g,m)}}let c=s=>{let g=(n.get(s.name)??[]).map(m=>q(m,a,"oas32-parent",s.name));return{id:`tag:${s.name}`,name:s.displayName,order:s.order,children:f(g),metadata:{description:s.description,source:"oas32-parent",kind:"tag"}}},i=new Set(e.map(s=>s.name)),r=[...e];for(let s of n.keys())s!=="Other"&&!i.has(s)&&r.push({name:s,displayName:s});let d=E(r,c,o),p=n.get("Other")??[];if(p.length>0&&!e.some(s=>s.name==="Other")){let s=p.map(u=>q(u,a,"fallback","Other"));d.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(s),metadata:{source:"fallback",kind:"tag"}})}return f(d)}function Me(e,t,a){let o=new Map,n=new Map;for(let r=0;r<e.length;r+=1)n.set(e[r].name,r);for(let r of t){if(_(r.raw,a.showInternal))continue;let d=r.tags.length>0?r.tags:["Other"];for(let p of d){let s=o.get(p)??[];s.push(r),o.set(p,s)}}let c=new Map;for(let r of e)c.set(r.name,r.displayName);let i=[];for(let[r,d]of o){let p=d.map(s=>q(s,a,"tag",r));i.push({id:`tag:${r}`,name:c.get(r)??r,order:r==="Other"?Number.MAX_SAFE_INTEGER:n.get(r),children:f(p),metadata:{source:"tag",kind:"tag"}})}return f(i)}function Ce(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function Z(e,t,a=0,o={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(a>=128||o.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];o.active.add(e);let n=[];for(let c of e){if(o.remaining<=0){o.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),o.warned=!0;break}let i=l(c);if(!i||typeof i.name!="string")continue;o.remaining--;let r={name:i.name};Array.isArray(i.tags)&&(r.tags=i.tags.filter(d=>typeof d=="string")),Array.isArray(i.groups)&&(r.groups=Z(i.groups,t,a+1,o)),n.push(r)}return o.active.delete(e),n}function v(e,t,a,o,n,c=0){let i=[];if(e.tags)for(let r of e.tags){let d=t.get(r);if(!d||d.length===0)continue;let p=d.map(s=>q(s,n,"tag-group",r));i.push({id:`tag:${r}`,name:a.get(r)??r,order:o.get(r),children:f(p),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let r of e.groups)i.push(v(r,t,a,o,n,c+1));return{id:`tag-group:${e.name}`,name:e.name,order:c*1e3,children:f(i),metadata:{source:"tag-group",kind:"tag-group"}}}function xe(e,t,a,o,n){let c=new Map,i=new Map,r=new Map;for(let u=0;u<t.length;u+=1)i.set(t[u].name,u),r.set(t[u].name,t[u].displayName);for(let u of a){if(_(u.raw,o.showInternal))continue;let g=u.tags.length>0?u.tags:["Other"];for(let m of g){let T=c.get(m)??[];T.push(u),c.set(m,T)}}let p=Z(e["x-tagGroups"],n).map(u=>v(u,c,r,i,o)),s=c.get("Other");if(s&&s.length>0){let u=s.map(g=>q(g,o,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(u),metadata:{source:"fallback",kind:"tag"}})}return f(p)}function Ge(e,t){if(!t.showComponents)return;let a=l(e.components),o=l(a?.schemas);if(!o)return;let n=[];for(let[c,i]of Object.entries(o)){let r=l(i);!r||_(r,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:K(r),metadata:{description:h(r.description),pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"tag",kind:"component"}}}function qe(e){let t=new Map,a=X(e);for(let o=a.length-1;o>=0;o--){let n=a[o].node,c=n.children?.map(r=>t.get(r)).filter(Boolean),i=(n.metadata?.kind==="operation"?1:0)+(c?.reduce((r,d)=>r+(d.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:c,metadata:{...n.metadata,operationCount:i}})}return e.map(o=>t.get(o))}function Je(e,t={}){let a={...be,...t},o=[],n=l(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=Re(n),i=Se(n),r;$e(i)?r=Ie(i,c,a,o):Ce(n)?r=xe(n,i,c,a,o):r=Me(i,c,a);let d=Ge(n,a),p=qe([...r,...d?[d]:[]]);return{root:{id:"root",name:"API Documentation",children:f(p),metadata:{kind:"root"}},warnings:o}}export{ge as a,Te as b,Oe as c,Ne as d,Je as e};