@powerduck/tree 0.7.17 → 0.7.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/index.cjs +1 -1
- package/dist/adapters/index.js +1 -1
- package/dist/chunk-FUR7BOZE.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.d.cts +40 -1
- package/dist/react/index.d.ts +40 -1
- package/dist/react/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-KPRGJSJS.js +0 -1
package/dist/adapters/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var F=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var pe=(e,t)=>{for(var o in t)F(e,o,{get:t[o],enumerable:!0})},me=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ce(t))!ue.call(e,n)&&n!==o&&F(e,n,{get:()=>t[n],enumerable:!(r=de(t,n))||r.enumerable});return e};var fe=e=>me(F({},"__esModule",{value:!0}),e);var We={};pe(We,{buildDocTree:()=>se,buildOpenApiTree:()=>V,buildSchemaTree:()=>ne,findSchemaNodeByPath:()=>te,formatSchemaType:()=>re});module.exports=fe(We);function*ge(e,t=1/0){let o=new Set,r=[];for(let n=e.length-1;n>=0;n--)r.push({node:e[n],depth:1});for(;r.length;){let n=r.pop();if(o.has(n.node)||n.depth>t)continue;o.add(n.node),yield n;let c=n.node.children??[];for(let a=c.length-1;a>=0;a--)r.push({node:c[a],parent:n,depth:n.depth+1})}}var le=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function g(e){return[...e].sort((t,o)=>{let r=(t.order??Number.MAX_SAFE_INTEGER)-(o.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(r)?0:r)||le.compare(t.name,o.name)||t.id.localeCompare(o.id)})}function v(e){return Array.from(ge(e),({node:t,depth:o})=>({node:t,depth:o}))}function J(e,t,o){let r=new Map;for(let s of e)r.has(s.name)?o.push(`Duplicate tag "${s.name}" was ignored.`):r.set(s.name,s);let n=new Map;for(let s of r.values())s.parent&&!r.has(s.parent)&&o.push(`Tag "${s.name}" references unknown parent "${s.parent}", treating as root.`),n.set(s.name,s.parent&&r.has(s.parent)?s.parent:null);let c=new Set;for(let s of r.keys()){let u=new Set,i=s;for(;i!==null&&!c.has(i);){if(u.has(i)){o.push(`Circular tag reference detected at "${i}". Breaking cycle.`),n.set(i,null);break}u.add(i),i=n.get(i)??null}for(let p of u)c.add(p)}let a=new Map(Array.from(r,([s,u])=>[s,t(u)])),d=[];for(let[s,u]of a){let i=n.get(s);if(i==null)d.push(u);else{let p=a.get(i);(p.children??(p.children=[])).push(u)}}for(let s of a.values())s.children&&(s.children=g(s.children));return g(d)}var z=["get","put","post","delete","options","head","patch","trace"],he={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Te(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function P(e){return typeof e=="boolean"?e:void 0}function $(e){return Array.isArray(e)?e:void 0}function C(e,t){return t?!1:P(e["x-scalar-ignore"])===!0||P(e["x-internal"])===!0}function A(e){return Te(e["x-order"])}function Ne(e){return w(e["x-displayName"])}function ye(e){let t=N(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let c=N(n);if(c)for(let a of z){let d=c[a];if(d==null)continue;let s=N(d);if(!s)continue;let u=w(s.operationId),i=w(s.summary),p=$(s.tags)?.filter(O=>typeof O=="string").map(O=>O.trim()).filter(O=>O.length>0)??[],m=i??u??`${a.toUpperCase()} ${r}`,f=u??`${a}:${r}`,T=`/paths/${encodeURIComponent(r)}/${a}`;o.push({id:f,path:r,method:a,name:m,summary:i,operationId:u,deprecated:P(s.deprecated)===!0,tags:p,pointer:T,raw:s})}}return o}function Oe(e){let t=$(e.tags);if(!t)return[];let o=[];for(let r of t){let n=N(r),c=w(n?.name);!c||!n||o.push({name:c,displayName:Ne(n)??c,description:w(n.description),parent:w(n.parent),order:A(n),raw:n})}return o}function be(e){return e.some(t=>t.parent!==void 0)}function U(e){return{id:`op:root:${e.id}`,name:e.name,order:A(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function we(e,t,o,r){let n=new Map,c=[];for(let i of t)if(!C(i.raw,o.showInternal)){if(i.tags.length===0){c.push(i);continue}for(let p of i.tags){let m=n.get(p)??[];m.push(i),n.set(p,m)}}let a=i=>{let m=(n.get(i.name)??[]).map(f=>({id:`op:${i.name}:${f.id}`,name:f.name,order:A(f.raw),metadata:{method:f.method,path:f.path,operationId:f.operationId,deprecated:f.deprecated,summary:f.summary,pointer:f.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${i.name}`,name:i.displayName,order:i.order,children:g(m),metadata:{source:"oas32-parent",kind:"tag"}}},d=new Set(e.map(i=>i.name)),s=[...e];for(let i of n.keys())d.has(i)||s.push({name:i,displayName:i,raw:{}});let u=J(s,a,r);return g([...u,...c.map(U)])}function ke(e){let t=$(e["x-tagGroups"]);if(!t)return[];let o=(r,n)=>{let c=N(r),a=w(c?.name),d=$(c?.tags)?.filter(u=>typeof u=="string").map(u=>u.trim()).filter(u=>u.length>0)??[];if(!a)return null;let s=$(c?.groups)?.map((u,i)=>o(u,i)).filter(u=>u!==null)??[];return{name:a,tags:d,groups:s.length>0?s:void 0,order:A(c??{})??n}};return t.map((r,n)=>o(r,n)).filter(r=>r!==null)}function De(e,t,o,r){let n=new Map;for(let i of t)n.set(i.name,i.displayName);let c=new Map,a=[];for(let i of o)if(!C(i.raw,r.showInternal)){if(i.tags.length===0){a.push(i);continue}for(let p of i.tags){let m=c.get(p)??[];m.push(i),c.set(p,m)}}let d=i=>(c.get(i)??[]).map(m=>({id:`op:${i}:${m.id}`,name:m.name,order:A(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),s=i=>({id:`tag:${i}`,name:n.get(i)??i,children:g(d(i)),metadata:{source:"tag-group",kind:"tag"}}),u=i=>{let p=[];for(let m of i.tags)c.get(m)?.length&&p.push(s(m));for(let m of i.groups??[])p.push(u(m));return{id:`tag-group:${i.name}`,name:i.name,order:i.order,children:g(p),metadata:{source:"tag-group",kind:"tag-group"}}};return g([...e.map(u),...a.map(U)])}function Ae(e,t,o){let r=new Map,n=[],c=new Map;for(let s=0;s<e.length;s+=1){let u=e[s];c.set(u.name,u.order??s)}for(let s of t)if(!C(s.raw,o.showInternal)){if(s.tags.length===0){n.push(s);continue}for(let u of s.tags){let i=r.get(u)??[];i.push(s),r.set(u,i)}}let a=new Map;for(let s of e)a.set(s.name,s.displayName);let d=[];for(let[s,u]of r){let i=u.map(p=>({id:`op:${s}:${p.id}`,name:p.name,order:A(p.raw),metadata:{method:p.method,path:p.path,operationId:p.operationId,deprecated:p.deprecated,summary:p.summary,pointer:p.pointer,source:"tag",kind:"operation"}}));d.push({id:`tag:${s}`,name:a.get(s)??s,order:c.get(s),children:g(i),metadata:{source:"tag",kind:"tag"}})}return g([...d,...n.map(U)])}function Re(e,t){if(!t.showComponents)return;let o=N(e.components),r=N(o?.schemas);if(!r)return;let n=[];for(let[c,a]of Object.entries(r)){let d=N(a);!d||C(d,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:A(d),metadata:{pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"section",kind:"section",section:"components"}}}function Se(e,t){if(!t.showWebhooks)return;let o=N(e.webhooks);if(!o)return;let r=[];for(let[n,c]of Object.entries(o)){let a=N(c);if(a)for(let d of z){let s=a[d],u=N(s);if(!u||C(u,t.showInternal))continue;let i=w(u.operationId),p=w(u.summary),m=p??i??`${d.toUpperCase()} ${n}`;r.push({id:`webhook:${n}:${d}`,name:m,order:A(u),metadata:{method:d,path:n,operationId:i,deprecated:P(u.deprecated)===!0,summary:p,pointer:`/webhooks/${encodeURIComponent(n)}/${d}`,source:"tag",kind:"webhook"}})}}if(r.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:g(r),metadata:{source:"section",kind:"section",section:"webhooks"}}}function V(e,t={}){let o={...he,...t},r=[],n=N(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=ye(n),a=Oe(n),d;if(be(a))d=we(a,c,o,r);else{let m=ke(n);m.length>0?d=De(m,a,c,o):d=Ae(a,c,o)}let s=Se(n,o),u=Re(n,o),p=[{id:"section:apis",name:"APIs",children:d,metadata:{kind:"section",source:"section",section:"apis"},order:0},...s?[s]:[],...u?[u]:[]];return{root:{id:"root",name:"OpenAPI",children:g(p),metadata:{kind:"root"}},warnings:r}}var Y={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},j={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Q=new Set(["string","number","integer","boolean","null"]);function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function L(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Z(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function Ie(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(o=>typeof o=="string"))return t}function xe(e){return e?Array.isArray(e)?e.every(t=>Q.has(t)):Q.has(e):!1}function $e(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function ee(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,o=>`\\${o}`)).join(".")||"root"}function B(e,t,o,r,n,c){n.remaining--;let a=Ie(t),d=L(t.format),s=L(t.description),u=Z(t.deprecated)===!0,i=$e(a),p={jsonPath:o,type:a,format:d,required:c,deprecated:u,description:s,kind:i},m=L(t.$ref);if(m){if(n.refStack.has(m))return n.warnings.push(`Circular $ref detected at ${o.join(".")}: ${m}. Breaking recursion.`),{id:S(o),name:e,metadata:{...p,kind:"ref",isLeaf:!0}};n.refStack.add(m)}let f,T=xe(a),O=n.activeSchemas.has(t);if(O&&n.warnings.push(`Circular schema object detected at ${S(o)}.`),O||r>=n.options.maxDepth||n.remaining<=0)return m&&n.refStack.delete(m),{id:S(o),name:e,metadata:{...p,isLeaf:!0}};n.activeSchemas.add(t);let k=M(t.properties);if(k){let R=K(t.required)??[],y=new Set(R.filter(b=>typeof b=="string")),q=[];for(let[b,I]of Object.entries(k)){if(n.remaining<=0)break;let x=M(I);x&&(!n.options.showDeprecated&&Z(x.deprecated)===!0||q.push(B(b,x,[...o,"properties",b],r+1,n,y.has(b))))}f=[...f??[],...g(q)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&a==="array"){let R=M(t.items);if(R){let y=B("items",R,[...o,"items"],r+1,n,!1);f=[...f??[],y],T=!1}else p.hasItems=!1}if(n.options.expandCombinators){let R=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:y,kind:q}of R){if(n.remaining<=0)break;let b=K(t[y]);if(!b?.length)continue;n.remaining--;let I=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ae=b[D],X=M(ae);if(!X){n.remaining--,I.push({id:S([...o,y,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...o,y,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(B(`[${D}]`,X,[...o,y,String(D)],r+1,n,!1))}let x={id:S([...o,y]),name:y,children:g(I),metadata:{jsonPath:[...o,y],kind:q}};f=[...f??[],x],T=!1}}return K(t.enum)?.length&&!f?.length&&(p.kind="enum",T=!0),m&&n.refStack.delete(m),n.activeSchemas.delete(t),{id:S(o),name:e,order:Object.prototype.hasOwnProperty.call(Y,e)?Y[e]:void 0,metadata:{...p,isLeaf:T},children:f}}function ne(e,t={}){let o={...j,...t};o.maxDepth=Number.isFinite(o.maxDepth)?Math.min(128,Math.max(0,Math.trunc(o.maxDepth))):j.maxDepth,o.maxNodes=Number.isFinite(o.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(o.maxNodes))):j.maxNodes;let r=[],n=M(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let c={options:o,warnings:r,refStack:new Set,activeSchemas:new Set,remaining:o.maxNodes},a=B("root",n,[],0,c,!0);return c.remaining<=0&&r.push(`Schema node limit (${o.maxNodes}) reached; remaining branches were omitted.`),{root:a,warnings:r}}function te(e,t){if(t.length===0)return e;let o=JSON.stringify(t),r=[e],n=new Set;for(let c=0;c<r.length;c++){let a=r[c];if(!a||n.has(a))continue;if(n.add(a),JSON.stringify(a.metadata?.jsonPath)===o)return a;for(let s of a.children??[])r.push(s)}}function re(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${ee(e.type)} (${e.format})`:ee(e.type)}var Ce=["get","put","post","delete","options","head","patch","trace"],Me={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function E(e){return typeof e=="boolean"?e:void 0}function H(e){return Array.isArray(e)?e:void 0}function _(e,t){return t?!1:E(e["x-scalar-ignore"])===!0||E(e["x-internal"])===!0}function W(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function Ee(e){return h(e["x-displayName"])}function Ge(e,t){let o=[];for(let r of e){let n=l(r);if(!n)continue;let c=h(n.name),a=h(n.in);if(!c||!a)continue;let d=`${a}:${c}`;o.push({id:`${t}/parameters/${encodeURIComponent(d)}`,name:c,metadata:{paramIn:a,required:E(n.required)===!0,description:h(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return g(o)}function qe(e,t){let o=[];for(let[r,n]of Object.entries(e)){let c=l(n);if(!c)continue;let a=h(c.description),d=l(c.content),s=[];if(d)for(let[u]of Object.entries(d))s.push({id:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,name:u,metadata:{contentType:u,pointer:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,kind:"content"}});o.push({id:`${t}/responses/${encodeURIComponent(r)}`,name:r,metadata:{statusCode:r,description:a,pointer:`${t}/responses/${encodeURIComponent(r)}`,kind:"response"},children:s.length>0?s:void 0})}return g(o)}function Je(e,t){let o=[],r=H(e.parameters);if(r?.length){let a=Ge(r,t);a.length>0&&o.push({id:`${t}/parameters`,name:"Parameters",children:a,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=l(e.requestBody);if(n){let a=l(n.content),d=[];if(a)for(let[s]of Object.entries(a))d.push({id:`${t}/requestBody/content/${encodeURIComponent(s)}`,name:s,metadata:{contentType:s,pointer:`${t}/requestBody/content/${encodeURIComponent(s)}`,kind:"content"}});o.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:h(n.description),required:E(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:d.length>0?d:void 0})}let c=l(e.responses);if(c){let a=qe(c,t);a.length>0&&o.push({id:`${t}/responses`,name:"Responses",children:a,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return o}function Pe(e){let t=l(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let c=l(n);if(c)for(let a of Ce){let d=c[a],s=l(d);if(!s)continue;let u=h(s.operationId),i=h(s.summary),p=h(s.description),m=H(s.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],f=i??u??`${a.toUpperCase()} ${r}`,T=u??`${a}:${r}`,O=`/paths/${encodeURIComponent(r)}/${a}`;o.push({id:T,path:r,method:a,name:f,summary:i,description:p,operationId:u,deprecated:E(s.deprecated)===!0,tags:m,pointer:O,raw:s})}}return o}function Be(e){let t=H(e.tags);if(!t)return[];let o=[];for(let r of t){let n=l(r),c=h(n?.name);!c||!n||o.push({name:c,displayName:Ee(n)??c,description:h(n.description),parent:h(n.parent),order:W(n)})}return o}function _e(e){return e.some(t=>t.parent!==void 0)}function G(e,t,o,r){let n=t.expandOperationDetails?Je(e.raw,e.pointer):void 0;return{id:`op:${r}:${e.id}`,name:e.name,order:W(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:o,kind:"operation"},children:n&&n.length>0?n:void 0}}function Fe(e,t,o,r){let n=new Map;for(let i of t){if(_(i.raw,o.showInternal))continue;let p=i.tags.length>0?i.tags:["Other"];for(let m of p){let f=n.get(m)??[];f.push(i),n.set(m,f)}}let c=i=>{let m=(n.get(i.name)??[]).map(f=>G(f,o,"oas32-parent",i.name));return{id:`tag:${i.name}`,name:i.displayName,order:i.order,children:g(m),metadata:{description:i.description,source:"oas32-parent",kind:"tag"}}},a=new Set(e.map(i=>i.name)),d=[...e];for(let i of n.keys())i!=="Other"&&!a.has(i)&&d.push({name:i,displayName:i});let s=J(d,c,r),u=n.get("Other")??[];if(u.length>0&&!e.some(i=>i.name==="Other")){let i=u.map(p=>G(p,o,"fallback","Other"));s.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(i),metadata:{source:"fallback",kind:"tag"}})}return g(s)}function Ue(e,t,o){let r=new Map,n=new Map;for(let d=0;d<e.length;d+=1)n.set(e[d].name,d);for(let d of t){if(_(d.raw,o.showInternal))continue;let s=d.tags.length>0?d.tags:["Other"];for(let u of s){let i=r.get(u)??[];i.push(d),r.set(u,i)}}let c=new Map;for(let d of e)c.set(d.name,d.displayName);let a=[];for(let[d,s]of r){let u=s.map(i=>G(i,o,"tag",d));a.push({id:`tag:${d}`,name:c.get(d)??d,order:d==="Other"?Number.MAX_SAFE_INTEGER:n.get(d),children:g(u),metadata:{source:"tag",kind:"tag"}})}return g(a)}function je(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function oe(e,t,o=0,r={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(o>=128||r.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];r.active.add(e);let n=[];for(let c of e){if(r.remaining<=0){r.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),r.warned=!0;break}let a=l(c);if(!a||typeof a.name!="string")continue;r.remaining--;let d={name:a.name};Array.isArray(a.tags)&&(d.tags=a.tags.filter(s=>typeof s=="string")),Array.isArray(a.groups)&&(d.groups=oe(a.groups,t,o+1,r)),n.push(d)}return r.active.delete(e),n}function ie(e,t,o,r,n,c=0){let a=[];if(e.tags)for(let d of e.tags){let s=t.get(d);if(!s||s.length===0)continue;let u=s.map(i=>G(i,n,"tag-group",d));a.push({id:`tag:${d}`,name:o.get(d)??d,order:r.get(d),children:g(u),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let d of e.groups)a.push(ie(d,t,o,r,n,c+1));return{id:`tag-group:${e.name}`,name:e.name,order:c*1e3,children:g(a),metadata:{source:"tag-group",kind:"tag-group"}}}function Le(e,t,o,r,n){let c=new Map,a=new Map,d=new Map;for(let p=0;p<t.length;p+=1)a.set(t[p].name,p),d.set(t[p].name,t[p].displayName);for(let p of o){if(_(p.raw,r.showInternal))continue;let m=p.tags.length>0?p.tags:["Other"];for(let f of m){let T=c.get(f)??[];T.push(p),c.set(f,T)}}let u=oe(e["x-tagGroups"],n).map(p=>ie(p,c,d,a,r)),i=c.get("Other");if(i&&i.length>0){let p=i.map(m=>G(m,r,"fallback","Other"));u.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(p),metadata:{source:"fallback",kind:"tag"}})}return g(u)}function Ke(e,t){if(!t.showComponents)return;let o=l(e.components),r=l(o?.schemas);if(!r)return;let n=[];for(let[c,a]of Object.entries(r)){let d=l(a);!d||_(d,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:W(d),metadata:{description:h(d.description),pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"tag",kind:"component"}}}function He(e){let t=new Map,o=v(e);for(let r=o.length-1;r>=0;r--){let n=o[r].node,c=n.children?.map(d=>t.get(d)).filter(Boolean),a=(n.metadata?.kind==="operation"?1:0)+(c?.reduce((d,s)=>d+(s.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:c,metadata:{...n.metadata,operationCount:a}})}return e.map(r=>t.get(r))}function se(e,t={}){let o={...Me,...t},r=[],n=l(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=Pe(n),a=Be(n),d;_e(a)?d=Fe(a,c,o,r):je(n)?d=Le(n,a,c,o,r):d=Ue(a,c,o);let s=Ke(n,o),u=He([...d,...s?[s]:[]]);return{root:{id:"root",name:"API Documentation",children:g(u),metadata:{kind:"root"}},warnings:r}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,findSchemaNodeByPath,formatSchemaType});
|
|
1
|
+
"use strict";var F=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var pe=(e,t)=>{for(var o in t)F(e,o,{get:t[o],enumerable:!0})},me=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ce(t))!ue.call(e,n)&&n!==o&&F(e,n,{get:()=>t[n],enumerable:!(r=de(t,n))||r.enumerable});return e};var fe=e=>me(F({},"__esModule",{value:!0}),e);var We={};pe(We,{buildDocTree:()=>se,buildOpenApiTree:()=>V,buildSchemaTree:()=>ne,findSchemaNodeByPath:()=>te,formatSchemaType:()=>re});module.exports=fe(We);function*ge(e,t=1/0){let o=new Set,r=[];for(let n=e.length-1;n>=0;n--)r.push({node:e[n],depth:1});for(;r.length;){let n=r.pop();if(o.has(n.node)||n.depth>t)continue;o.add(n.node),yield n;let d=n.node.children??[];for(let s=d.length-1;s>=0;s--)r.push({node:d[s],parent:n,depth:n.depth+1})}}var le=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function g(e){return[...e].sort((t,o)=>{let r=(t.order??Number.MAX_SAFE_INTEGER)-(o.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(r)?0:r)||le.compare(t.name,o.name)||t.id.localeCompare(o.id)})}function v(e){return Array.from(ge(e),({node:t,depth:o})=>({node:t,depth:o}))}function J(e,t,o){let r=new Map;for(let c of e)r.has(c.name)?o.push(`Duplicate tag "${c.name}" was ignored.`):r.set(c.name,c);let n=new Map;for(let c of r.values())c.parent&&!r.has(c.parent)&&o.push(`Tag "${c.name}" references unknown parent "${c.parent}", treating as root.`),n.set(c.name,c.parent&&r.has(c.parent)?c.parent:null);let d=new Set;for(let c of r.keys()){let p=new Set,i=c;for(;i!==null&&!d.has(i);){if(p.has(i)){o.push(`Circular tag reference detected at "${i}". Breaking cycle.`),n.set(i,null);break}p.add(i),i=n.get(i)??null}for(let u of p)d.add(u)}let s=new Map(Array.from(r,([c,p])=>[c,t(p)])),a=[];for(let[c,p]of s){let i=n.get(c);if(i==null)a.push(p);else{let u=s.get(i);(u.children??(u.children=[])).push(p)}}for(let c of s.values())c.children&&(c.children=g(c.children));return g(a)}var z=["get","put","post","delete","options","head","patch","trace"],he={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Te(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function P(e){return typeof e=="boolean"?e:void 0}function $(e){return Array.isArray(e)?e:void 0}function C(e,t){return t?!1:P(e["x-scalar-ignore"])===!0||P(e["x-internal"])===!0}function A(e){return Te(e["x-order"])}function Ne(e){return w(e["x-displayName"])}function ye(e){let t=y(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let d=y(n);if(d)for(let s of z){let a=d[s];if(a==null)continue;let c=y(a);if(!c)continue;let p=w(c.operationId),i=w(c.summary),u=$(c.tags)?.filter(l=>typeof l=="string").map(l=>l.trim()).filter(l=>l.length>0)??[],m=i??p??`${s.toUpperCase()} ${r}`,f=p??`${s}:${r}`,T=`/paths/${encodeURIComponent(r)}/${s}`;o.push({id:f,path:r,method:s,name:m,summary:i,operationId:p,deprecated:P(c.deprecated)===!0,tags:u,pointer:T,raw:c})}}return o}function Oe(e){let t=$(e.tags);if(!t)return[];let o=[];for(let r of t){let n=y(r),d=w(n?.name);!d||!n||o.push({name:d,displayName:Ne(n)??d,description:w(n.description),parent:w(n.parent),order:A(n),raw:n})}return o}function be(e){return e.some(t=>t.parent!==void 0)}function U(e){return{id:`op:root:${e.id}`,name:e.name,order:A(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function we(e,t,o,r){let n=new Map,d=[];for(let i of t)if(!C(i.raw,o.showInternal)){if(i.tags.length===0){d.push(i);continue}for(let u of i.tags){let m=n.get(u)??[];m.push(i),n.set(u,m)}}let s=i=>{let m=(n.get(i.name)??[]).map(f=>({id:`op:${i.name}:${f.id}`,name:f.name,order:A(f.raw),metadata:{method:f.method,path:f.path,operationId:f.operationId,deprecated:f.deprecated,summary:f.summary,pointer:f.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${i.name}`,name:i.displayName,order:i.order,children:g(m),metadata:{source:"oas32-parent",kind:"tag"}}},a=new Set(e.map(i=>i.name)),c=[...e];for(let i of n.keys())a.has(i)||c.push({name:i,displayName:i,raw:{}});let p=J(c,s,r);return g([...p,...d.map(U)])}function ke(e){let t=$(e["x-tagGroups"]);if(!t)return[];let o=(r,n)=>{let d=y(r),s=w(d?.name),a=$(d?.tags)?.filter(p=>typeof p=="string").map(p=>p.trim()).filter(p=>p.length>0)??[];if(!s)return null;let c=$(d?.groups)?.map((p,i)=>o(p,i)).filter(p=>p!==null)??[];return{name:s,tags:a,groups:c.length>0?c:void 0,order:A(d??{})??n}};return t.map((r,n)=>o(r,n)).filter(r=>r!==null)}function De(e,t,o,r){let n=new Map;for(let i of t)n.set(i.name,i.displayName);let d=new Map,s=[];for(let i of o)if(!C(i.raw,r.showInternal)){if(i.tags.length===0){s.push(i);continue}for(let u of i.tags){let m=d.get(u)??[];m.push(i),d.set(u,m)}}let a=i=>(d.get(i)??[]).map(m=>({id:`op:${i}:${m.id}`,name:m.name,order:A(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),c=i=>({id:`tag:${i}`,name:n.get(i)??i,children:g(a(i)),metadata:{source:"tag-group",kind:"tag"}}),p=i=>{let u=[];for(let m of i.tags)d.get(m)?.length&&u.push(c(m));for(let m of i.groups??[])u.push(p(m));return{id:`tag-group:${i.name}`,name:i.name,order:i.order,children:g(u),metadata:{source:"tag-group",kind:"tag-group"}}};return g([...e.map(p),...s.map(U)])}function Ae(e,t,o){let r=new Map,n=[],d=new Map;for(let u=0;u<e.length;u+=1){let m=e[u];d.set(m.name,m.order??u)}for(let u of t)if(!C(u.raw,o.showInternal)){if(u.tags.length===0){n.push(u);continue}for(let m of u.tags){let f=r.get(m)??[];f.push(u),r.set(m,f)}}let s=new Map;for(let u of e)s.set(u.name,u.displayName);let a=(u,m)=>{let T=(r.get(u)??[]).map(l=>({id:`op:${u}:${l.id}`,name:l.name,order:A(l.raw),metadata:{method:l.method,path:l.path,operationId:l.operationId,deprecated:l.deprecated,summary:l.summary,pointer:l.pointer,source:"tag",kind:"operation"}}));return{id:`tag:${u}`,name:s.get(u)??u,order:d.get(u)??m,children:g(T),metadata:{source:"tag",kind:"tag"}}},c=[],p=new Set;e.forEach((u,m)=>{p.add(u.name),c.push(a(u.name,m))});let i=e.length;for(let u of r.keys())p.has(u)||(c.push(a(u,i)),i+=1);return g([...c,...n.map(U)])}function Re(e,t){if(!t.showComponents)return;let o=y(e.components),r=y(o?.schemas);if(!r)return;let n=[];for(let[d,s]of Object.entries(r)){let a=y(s);!a||C(a,t.showInternal)||n.push({id:`schema:${d}`,name:d,order:A(a),metadata:{pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"section",kind:"section",section:"components"}}}function Se(e,t){if(!t.showWebhooks)return;let o=y(e.webhooks);if(!o)return;let r=[];for(let[n,d]of Object.entries(o)){let s=y(d);if(s)for(let a of z){let c=s[a],p=y(c);if(!p||C(p,t.showInternal))continue;let i=w(p.operationId),u=w(p.summary),m=u??i??`${a.toUpperCase()} ${n}`;r.push({id:`webhook:${n}:${a}`,name:m,order:A(p),metadata:{method:a,path:n,operationId:i,deprecated:P(p.deprecated)===!0,summary:u,pointer:`/webhooks/${encodeURIComponent(n)}/${a}`,source:"tag",kind:"webhook"}})}}if(r.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:g(r),metadata:{source:"section",kind:"section",section:"webhooks"}}}function V(e,t={}){let o={...he,...t},r=[],n=y(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=ye(n),s=Oe(n),a;if(be(s))a=we(s,d,o,r);else{let m=ke(n);m.length>0?a=De(m,s,d,o):a=Ae(s,d,o)}let c=Se(n,o),p=Re(n,o),u=[{id:"section:apis",name:"APIs",children:a,metadata:{kind:"section",source:"section",section:"apis"},order:0},...c?[c]:[],...p?[p]:[]];return{root:{id:"root",name:"OpenAPI",children:g(u),metadata:{kind:"root"}},warnings:r}}var Y={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},j={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Q=new Set(["string","number","integer","boolean","null"]);function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function L(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Z(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function Ie(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(o=>typeof o=="string"))return t}function xe(e){return e?Array.isArray(e)?e.every(t=>Q.has(t)):Q.has(e):!1}function $e(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function ee(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,o=>`\\${o}`)).join(".")||"root"}function B(e,t,o,r,n,d){n.remaining--;let s=Ie(t),a=L(t.format),c=L(t.description),p=Z(t.deprecated)===!0,i=$e(s),u={jsonPath:o,type:s,format:a,required:d,deprecated:p,description:c,kind:i},m=L(t.$ref);if(m){if(n.refStack.has(m))return n.warnings.push(`Circular $ref detected at ${o.join(".")}: ${m}. Breaking recursion.`),{id:S(o),name:e,metadata:{...u,kind:"ref",isLeaf:!0}};n.refStack.add(m)}let f,T=xe(s),l=n.activeSchemas.has(t);if(l&&n.warnings.push(`Circular schema object detected at ${S(o)}.`),l||r>=n.options.maxDepth||n.remaining<=0)return m&&n.refStack.delete(m),{id:S(o),name:e,metadata:{...u,isLeaf:!0}};n.activeSchemas.add(t);let k=M(t.properties);if(k){let R=K(t.required)??[],O=new Set(R.filter(b=>typeof b=="string")),q=[];for(let[b,I]of Object.entries(k)){if(n.remaining<=0)break;let x=M(I);x&&(!n.options.showDeprecated&&Z(x.deprecated)===!0||q.push(B(b,x,[...o,"properties",b],r+1,n,O.has(b))))}f=[...f??[],...g(q)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&s==="array"){let R=M(t.items);if(R){let O=B("items",R,[...o,"items"],r+1,n,!1);f=[...f??[],O],T=!1}else u.hasItems=!1}if(n.options.expandCombinators){let R=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:O,kind:q}of R){if(n.remaining<=0)break;let b=K(t[O]);if(!b?.length)continue;n.remaining--;let I=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ae=b[D],X=M(ae);if(!X){n.remaining--,I.push({id:S([...o,O,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...o,O,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(B(`[${D}]`,X,[...o,O,String(D)],r+1,n,!1))}let x={id:S([...o,O]),name:O,children:g(I),metadata:{jsonPath:[...o,O],kind:q}};f=[...f??[],x],T=!1}}return K(t.enum)?.length&&!f?.length&&(u.kind="enum",T=!0),m&&n.refStack.delete(m),n.activeSchemas.delete(t),{id:S(o),name:e,order:Object.prototype.hasOwnProperty.call(Y,e)?Y[e]:void 0,metadata:{...u,isLeaf:T},children:f}}function ne(e,t={}){let o={...j,...t};o.maxDepth=Number.isFinite(o.maxDepth)?Math.min(128,Math.max(0,Math.trunc(o.maxDepth))):j.maxDepth,o.maxNodes=Number.isFinite(o.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(o.maxNodes))):j.maxNodes;let r=[],n=M(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let d={options:o,warnings:r,refStack:new Set,activeSchemas:new Set,remaining:o.maxNodes},s=B("root",n,[],0,d,!0);return d.remaining<=0&&r.push(`Schema node limit (${o.maxNodes}) reached; remaining branches were omitted.`),{root:s,warnings:r}}function te(e,t){if(t.length===0)return e;let o=JSON.stringify(t),r=[e],n=new Set;for(let d=0;d<r.length;d++){let s=r[d];if(!s||n.has(s))continue;if(n.add(s),JSON.stringify(s.metadata?.jsonPath)===o)return s;for(let c of s.children??[])r.push(c)}}function re(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${ee(e.type)} (${e.format})`:ee(e.type)}var Ce=["get","put","post","delete","options","head","patch","trace"],Me={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function h(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function N(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function E(e){return typeof e=="boolean"?e:void 0}function H(e){return Array.isArray(e)?e:void 0}function _(e,t){return t?!1:E(e["x-scalar-ignore"])===!0||E(e["x-internal"])===!0}function W(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function Ee(e){return N(e["x-displayName"])}function Ge(e,t){let o=[];for(let r of e){let n=h(r);if(!n)continue;let d=N(n.name),s=N(n.in);if(!d||!s)continue;let a=`${s}:${d}`;o.push({id:`${t}/parameters/${encodeURIComponent(a)}`,name:d,metadata:{paramIn:s,required:E(n.required)===!0,description:N(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return g(o)}function qe(e,t){let o=[];for(let[r,n]of Object.entries(e)){let d=h(n);if(!d)continue;let s=N(d.description),a=h(d.content),c=[];if(a)for(let[p]of Object.entries(a))c.push({id:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(p)}`,name:p,metadata:{contentType:p,pointer:`${t}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(p)}`,kind:"content"}});o.push({id:`${t}/responses/${encodeURIComponent(r)}`,name:r,metadata:{statusCode:r,description:s,pointer:`${t}/responses/${encodeURIComponent(r)}`,kind:"response"},children:c.length>0?c:void 0})}return g(o)}function Je(e,t){let o=[],r=H(e.parameters);if(r?.length){let s=Ge(r,t);s.length>0&&o.push({id:`${t}/parameters`,name:"Parameters",children:s,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=h(e.requestBody);if(n){let s=h(n.content),a=[];if(s)for(let[c]of Object.entries(s))a.push({id:`${t}/requestBody/content/${encodeURIComponent(c)}`,name:c,metadata:{contentType:c,pointer:`${t}/requestBody/content/${encodeURIComponent(c)}`,kind:"content"}});o.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:N(n.description),required:E(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:a.length>0?a:void 0})}let d=h(e.responses);if(d){let s=qe(d,t);s.length>0&&o.push({id:`${t}/responses`,name:"Responses",children:s,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return o}function Pe(e){let t=h(e.paths);if(!t)return[];let o=[];for(let[r,n]of Object.entries(t)){let d=h(n);if(d)for(let s of Ce){let a=d[s],c=h(a);if(!c)continue;let p=N(c.operationId),i=N(c.summary),u=N(c.description),m=H(c.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],f=i??p??`${s.toUpperCase()} ${r}`,T=p??`${s}:${r}`,l=`/paths/${encodeURIComponent(r)}/${s}`;o.push({id:T,path:r,method:s,name:f,summary:i,description:u,operationId:p,deprecated:E(c.deprecated)===!0,tags:m,pointer:l,raw:c})}}return o}function Be(e){let t=H(e.tags);if(!t)return[];let o=[];for(let r of t){let n=h(r),d=N(n?.name);!d||!n||o.push({name:d,displayName:Ee(n)??d,description:N(n.description),parent:N(n.parent),order:W(n)})}return o}function _e(e){return e.some(t=>t.parent!==void 0)}function G(e,t,o,r){let n=t.expandOperationDetails?Je(e.raw,e.pointer):void 0;return{id:`op:${r}:${e.id}`,name:e.name,order:W(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:o,kind:"operation"},children:n&&n.length>0?n:void 0}}function Fe(e,t,o,r){let n=new Map;for(let i of t){if(_(i.raw,o.showInternal))continue;let u=i.tags.length>0?i.tags:["Other"];for(let m of u){let f=n.get(m)??[];f.push(i),n.set(m,f)}}let d=i=>{let m=(n.get(i.name)??[]).map(f=>G(f,o,"oas32-parent",i.name));return{id:`tag:${i.name}`,name:i.displayName,order:i.order,children:g(m),metadata:{description:i.description,source:"oas32-parent",kind:"tag"}}},s=new Set(e.map(i=>i.name)),a=[...e];for(let i of n.keys())i!=="Other"&&!s.has(i)&&a.push({name:i,displayName:i});let c=J(a,d,r),p=n.get("Other")??[];if(p.length>0&&!e.some(i=>i.name==="Other")){let i=p.map(u=>G(u,o,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(i),metadata:{source:"fallback",kind:"tag"}})}return g(c)}function Ue(e,t,o){let r=new Map,n=new Map;for(let a=0;a<e.length;a+=1)n.set(e[a].name,a);for(let a of t){if(_(a.raw,o.showInternal))continue;let c=a.tags.length>0?a.tags:["Other"];for(let p of c){let i=r.get(p)??[];i.push(a),r.set(p,i)}}let d=new Map;for(let a of e)d.set(a.name,a.displayName);let s=[];for(let[a,c]of r){let p=c.map(i=>G(i,o,"tag",a));s.push({id:`tag:${a}`,name:d.get(a)??a,order:a==="Other"?Number.MAX_SAFE_INTEGER:n.get(a),children:g(p),metadata:{source:"tag",kind:"tag"}})}return g(s)}function je(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function oe(e,t,o=0,r={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(o>=128||r.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];r.active.add(e);let n=[];for(let d of e){if(r.remaining<=0){r.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),r.warned=!0;break}let s=h(d);if(!s||typeof s.name!="string")continue;r.remaining--;let a={name:s.name};Array.isArray(s.tags)&&(a.tags=s.tags.filter(c=>typeof c=="string")),Array.isArray(s.groups)&&(a.groups=oe(s.groups,t,o+1,r)),n.push(a)}return r.active.delete(e),n}function ie(e,t,o,r,n,d=0){let s=[];if(e.tags)for(let a of e.tags){let c=t.get(a);if(!c||c.length===0)continue;let p=c.map(i=>G(i,n,"tag-group",a));s.push({id:`tag:${a}`,name:o.get(a)??a,order:r.get(a),children:g(p),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let a of e.groups)s.push(ie(a,t,o,r,n,d+1));return{id:`tag-group:${e.name}`,name:e.name,order:d*1e3,children:g(s),metadata:{source:"tag-group",kind:"tag-group"}}}function Le(e,t,o,r,n){let d=new Map,s=new Map,a=new Map;for(let u=0;u<t.length;u+=1)s.set(t[u].name,u),a.set(t[u].name,t[u].displayName);for(let u of o){if(_(u.raw,r.showInternal))continue;let m=u.tags.length>0?u.tags:["Other"];for(let f of m){let T=d.get(f)??[];T.push(u),d.set(f,T)}}let p=oe(e["x-tagGroups"],n).map(u=>ie(u,d,a,s,r)),i=d.get("Other");if(i&&i.length>0){let u=i.map(m=>G(m,r,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(u),metadata:{source:"fallback",kind:"tag"}})}return g(p)}function Ke(e,t){if(!t.showComponents)return;let o=h(e.components),r=h(o?.schemas);if(!r)return;let n=[];for(let[d,s]of Object.entries(r)){let a=h(s);!a||_(a,t.showInternal)||n.push({id:`schema:${d}`,name:d,order:W(a),metadata:{description:N(a.description),pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(n),metadata:{source:"tag",kind:"component"}}}function He(e){let t=new Map,o=v(e);for(let r=o.length-1;r>=0;r--){let n=o[r].node,d=n.children?.map(a=>t.get(a)).filter(Boolean),s=(n.metadata?.kind==="operation"?1:0)+(d?.reduce((a,c)=>a+(c.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:d,metadata:{...n.metadata,operationCount:s}})}return e.map(r=>t.get(r))}function se(e,t={}){let o={...Me,...t},r=[],n=h(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=Pe(n),s=Be(n),a;_e(s)?a=Fe(s,d,o,r):je(n)?a=Le(n,s,d,o,r):a=Ue(s,d,o);let c=Ke(n,o),p=He([...a,...c?[c]:[]]);return{root:{id:"root",name:"API Documentation",children:g(p),metadata:{kind:"root"}},warnings:r}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,findSchemaNodeByPath,formatSchemaType});
|
package/dist/adapters/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e}from"../chunk-FUR7BOZE.js";import"../chunk-AHHDXXHL.js";export{e as buildDocTree,a as buildOpenApiTree,b as buildSchemaTree,c as findSchemaNodeByPath,d as formatSchemaType};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as f,l as X}from"./chunk-AHHDXXHL.js";function P(e,t,r){let o=new Map;for(let c of e)o.has(c.name)?r.push(`Duplicate tag "${c.name}" was ignored.`):o.set(c.name,c);let n=new Map;for(let c of o.values())c.parent&&!o.has(c.parent)&&r.push(`Tag "${c.name}" references unknown parent "${c.parent}", treating as root.`),n.set(c.name,c.parent&&o.has(c.parent)?c.parent:null);let d=new Set;for(let c of o.keys()){let u=new Set,a=c;for(;a!==null&&!d.has(a);){if(u.has(a)){r.push(`Circular tag reference detected at "${a}". Breaking cycle.`),n.set(a,null);break}u.add(a),a=n.get(a)??null}for(let p of u)d.add(p)}let i=new Map(Array.from(o,([c,u])=>[c,t(u)])),s=[];for(let[c,u]of i){let a=n.get(c);if(a==null)s.push(u);else{let p=i.get(a);(p.children??(p.children=[])).push(u)}}for(let c of i.values())c.children&&(c.children=f(c.children));return f(s)}var z=["get","put","post","delete","options","head","patch","trace"],te={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function oe(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function B(e){return typeof e=="boolean"?e:void 0}function x(e){return Array.isArray(e)?e:void 0}function C(e,t){return t?!1:B(e["x-scalar-ignore"])===!0||B(e["x-internal"])===!0}function A(e){return oe(e["x-order"])}function re(e){return w(e["x-displayName"])}function ae(e){let t=N(e.paths);if(!t)return[];let r=[];for(let[o,n]of Object.entries(t)){let d=N(n);if(d)for(let i of z){let s=d[i];if(s==null)continue;let c=N(s);if(!c)continue;let u=w(c.operationId),a=w(c.summary),p=x(c.tags)?.filter(l=>typeof l=="string").map(l=>l.trim()).filter(l=>l.length>0)??[],m=a??u??`${i.toUpperCase()} ${o}`,g=u??`${i}:${o}`,T=`/paths/${encodeURIComponent(o)}/${i}`;r.push({id:g,path:o,method:i,name:m,summary:a,operationId:u,deprecated:B(c.deprecated)===!0,tags:p,pointer:T,raw:c})}}return r}function se(e){let t=x(e.tags);if(!t)return[];let r=[];for(let o of t){let n=N(o),d=w(n?.name);!d||!n||r.push({name:d,displayName:re(n)??d,description:w(n.description),parent:w(n.parent),order:A(n),raw:n})}return r}function ie(e){return e.some(t=>t.parent!==void 0)}function _(e){return{id:`op:root:${e.id}`,name:e.name,order:A(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function de(e,t,r,o){let n=new Map,d=[];for(let a of t)if(!C(a.raw,r.showInternal)){if(a.tags.length===0){d.push(a);continue}for(let p of a.tags){let m=n.get(p)??[];m.push(a),n.set(p,m)}}let i=a=>{let m=(n.get(a.name)??[]).map(g=>({id:`op:${a.name}:${g.id}`,name:g.name,order:A(g.raw),metadata:{method:g.method,path:g.path,operationId:g.operationId,deprecated:g.deprecated,summary:g.summary,pointer:g.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:f(m),metadata:{source:"oas32-parent",kind:"tag"}}},s=new Set(e.map(a=>a.name)),c=[...e];for(let a of n.keys())s.has(a)||c.push({name:a,displayName:a,raw:{}});let u=P(c,i,o);return f([...u,...d.map(_)])}function ce(e){let t=x(e["x-tagGroups"]);if(!t)return[];let r=(o,n)=>{let d=N(o),i=w(d?.name),s=x(d?.tags)?.filter(u=>typeof u=="string").map(u=>u.trim()).filter(u=>u.length>0)??[];if(!i)return null;let c=x(d?.groups)?.map((u,a)=>r(u,a)).filter(u=>u!==null)??[];return{name:i,tags:s,groups:c.length>0?c:void 0,order:A(d??{})??n}};return t.map((o,n)=>r(o,n)).filter(o=>o!==null)}function pe(e,t,r,o){let n=new Map;for(let a of t)n.set(a.name,a.displayName);let d=new Map,i=[];for(let a of r)if(!C(a.raw,o.showInternal)){if(a.tags.length===0){i.push(a);continue}for(let p of a.tags){let m=d.get(p)??[];m.push(a),d.set(p,m)}}let s=a=>(d.get(a)??[]).map(m=>({id:`op:${a}:${m.id}`,name:m.name,order:A(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),c=a=>({id:`tag:${a}`,name:n.get(a)??a,children:f(s(a)),metadata:{source:"tag-group",kind:"tag"}}),u=a=>{let p=[];for(let m of a.tags)d.get(m)?.length&&p.push(c(m));for(let m of a.groups??[])p.push(u(m));return{id:`tag-group:${a.name}`,name:a.name,order:a.order,children:f(p),metadata:{source:"tag-group",kind:"tag-group"}}};return f([...e.map(u),...i.map(_)])}function ue(e,t,r){let o=new Map,n=[],d=new Map;for(let p=0;p<e.length;p+=1){let m=e[p];d.set(m.name,m.order??p)}for(let p of t)if(!C(p.raw,r.showInternal)){if(p.tags.length===0){n.push(p);continue}for(let m of p.tags){let g=o.get(m)??[];g.push(p),o.set(m,g)}}let i=new Map;for(let p of e)i.set(p.name,p.displayName);let s=(p,m)=>{let T=(o.get(p)??[]).map(l=>({id:`op:${p}:${l.id}`,name:l.name,order:A(l.raw),metadata:{method:l.method,path:l.path,operationId:l.operationId,deprecated:l.deprecated,summary:l.summary,pointer:l.pointer,source:"tag",kind:"operation"}}));return{id:`tag:${p}`,name:i.get(p)??p,order:d.get(p)??m,children:f(T),metadata:{source:"tag",kind:"tag"}}},c=[],u=new Set;e.forEach((p,m)=>{u.add(p.name),c.push(s(p.name,m))});let a=e.length;for(let p of o.keys())u.has(p)||(c.push(s(p,a)),a+=1);return f([...c,...n.map(_)])}function me(e,t){if(!t.showComponents)return;let r=N(e.components),o=N(r?.schemas);if(!o)return;let n=[];for(let[d,i]of Object.entries(o)){let s=N(i);!s||C(s,t.showInternal)||n.push({id:`schema:${d}`,name:d,order:A(s),metadata:{pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"section",kind:"section",section:"components"}}}function ge(e,t){if(!t.showWebhooks)return;let r=N(e.webhooks);if(!r)return;let o=[];for(let[n,d]of Object.entries(r)){let i=N(d);if(i)for(let s of z){let c=i[s],u=N(c);if(!u||C(u,t.showInternal))continue;let a=w(u.operationId),p=w(u.summary),m=p??a??`${s.toUpperCase()} ${n}`;o.push({id:`webhook:${n}:${s}`,name:m,order:A(u),metadata:{method:s,path:n,operationId:a,deprecated:B(u.deprecated)===!0,summary:p,pointer:`/webhooks/${encodeURIComponent(n)}/${s}`,source:"tag",kind:"webhook"}})}}if(o.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}}function fe(e,t={}){let r={...te,...t},o=[],n=N(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=ae(n),i=se(n),s;if(ie(i))s=de(i,d,r,o);else{let m=ce(n);m.length>0?s=pe(m,i,d,r):s=ue(i,d,r)}let c=ge(n,r),u=me(n,r),p=[{id:"section:apis",name:"APIs",children:s,metadata:{kind:"section",source:"section",section:"apis"},order:0},...c?[c]:[],...u?[u]:[]];return{root:{id:"root",name:"OpenAPI",children:f(p),metadata:{kind:"root"}},warnings:o}}var V={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},j={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Y=new Set(["string","number","integer","boolean","null"]);function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function F(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Q(e){return typeof e=="boolean"?e:void 0}function L(e){return Array.isArray(e)?e:void 0}function le(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"))return t}function he(e){return e?Array.isArray(e)?e.every(t=>Y.has(t)):Y.has(e):!1}function Te(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Z(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,r=>`\\${r}`)).join(".")||"root"}function E(e,t,r,o,n,d){n.remaining--;let i=le(t),s=F(t.format),c=F(t.description),u=Q(t.deprecated)===!0,a=Te(i),p={jsonPath:r,type:i,format:s,required:d,deprecated:u,description:c,kind:a},m=F(t.$ref);if(m){if(n.refStack.has(m))return n.warnings.push(`Circular $ref detected at ${r.join(".")}: ${m}. Breaking recursion.`),{id:S(r),name:e,metadata:{...p,kind:"ref",isLeaf:!0}};n.refStack.add(m)}let g,T=he(i),l=n.activeSchemas.has(t);if(l&&n.warnings.push(`Circular schema object detected at ${S(r)}.`),l||o>=n.options.maxDepth||n.remaining<=0)return m&&n.refStack.delete(m),{id:S(r),name:e,metadata:{...p,isLeaf:!0}};n.activeSchemas.add(t);let k=M(t.properties);if(k){let R=L(t.required)??[],y=new Set(R.filter(b=>typeof b=="string")),J=[];for(let[b,$]of Object.entries(k)){if(n.remaining<=0)break;let I=M($);I&&(!n.options.showDeprecated&&Q(I.deprecated)===!0||J.push(E(b,I,[...r,"properties",b],o+1,n,y.has(b))))}g=[...g??[],...f(J)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&i==="array"){let R=M(t.items);if(R){let y=E("items",R,[...r,"items"],o+1,n,!1);g=[...g??[],y],T=!1}else p.hasItems=!1}if(n.options.expandCombinators){let R=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:y,kind:J}of R){if(n.remaining<=0)break;let b=L(t[y]);if(!b?.length)continue;n.remaining--;let $=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ne=b[D],W=M(ne);if(!W){n.remaining--,$.push({id:S([...r,y,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...r,y,String(D)],kind:"unknown",isLeaf:!0}});continue}$.push(E(`[${D}]`,W,[...r,y,String(D)],o+1,n,!1))}let I={id:S([...r,y]),name:y,children:f($),metadata:{jsonPath:[...r,y],kind:J}};g=[...g??[],I],T=!1}}return L(t.enum)?.length&&!g?.length&&(p.kind="enum",T=!0),m&&n.refStack.delete(m),n.activeSchemas.delete(t),{id:S(r),name:e,order:Object.prototype.hasOwnProperty.call(V,e)?V[e]:void 0,metadata:{...p,isLeaf:T},children:g}}function Oe(e,t={}){let r={...j,...t};r.maxDepth=Number.isFinite(r.maxDepth)?Math.min(128,Math.max(0,Math.trunc(r.maxDepth))):j.maxDepth,r.maxNodes=Number.isFinite(r.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(r.maxNodes))):j.maxNodes;let o=[],n=M(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let d={options:r,warnings:o,refStack:new Set,activeSchemas:new Set,remaining:r.maxNodes},i=E("root",n,[],0,d,!0);return d.remaining<=0&&o.push(`Schema node limit (${r.maxNodes}) reached; remaining branches were omitted.`),{root:i,warnings:o}}function Ne(e,t){if(t.length===0)return e;let r=JSON.stringify(t),o=[e],n=new Set;for(let d=0;d<o.length;d++){let i=o[d];if(!i||n.has(i))continue;if(n.add(i),JSON.stringify(i.metadata?.jsonPath)===r)return i;for(let c of i.children??[])o.push(c)}}function ye(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Z(e.type)} (${e.format})`:Z(e.type)}var be=["get","put","post","delete","options","head","patch","trace"],we={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function h(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function O(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function q(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function U(e,t){return t?!1:q(e["x-scalar-ignore"])===!0||q(e["x-internal"])===!0}function H(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function ke(e){return O(e["x-displayName"])}function De(e,t){let r=[];for(let o of e){let n=h(o);if(!n)continue;let d=O(n.name),i=O(n.in);if(!d||!i)continue;let s=`${i}:${d}`;r.push({id:`${t}/parameters/${encodeURIComponent(s)}`,name:d,metadata:{paramIn:i,required:q(n.required)===!0,description:O(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return f(r)}function Ae(e,t){let r=[];for(let[o,n]of Object.entries(e)){let d=h(n);if(!d)continue;let i=O(d.description),s=h(d.content),c=[];if(s)for(let[u]of Object.entries(s))c.push({id:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(u)}`,name:u,metadata:{contentType:u,pointer:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(u)}`,kind:"content"}});r.push({id:`${t}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:i,pointer:`${t}/responses/${encodeURIComponent(o)}`,kind:"response"},children:c.length>0?c:void 0})}return f(r)}function Re(e,t){let r=[],o=K(e.parameters);if(o?.length){let i=De(o,t);i.length>0&&r.push({id:`${t}/parameters`,name:"Parameters",children:i,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=h(e.requestBody);if(n){let i=h(n.content),s=[];if(i)for(let[c]of Object.entries(i))s.push({id:`${t}/requestBody/content/${encodeURIComponent(c)}`,name:c,metadata:{contentType:c,pointer:`${t}/requestBody/content/${encodeURIComponent(c)}`,kind:"content"}});r.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:O(n.description),required:q(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:s.length>0?s:void 0})}let d=h(e.responses);if(d){let i=Ae(d,t);i.length>0&&r.push({id:`${t}/responses`,name:"Responses",children:i,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return r}function Se(e){let t=h(e.paths);if(!t)return[];let r=[];for(let[o,n]of Object.entries(t)){let d=h(n);if(d)for(let i of be){let s=d[i],c=h(s);if(!c)continue;let u=O(c.operationId),a=O(c.summary),p=O(c.description),m=K(c.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],g=a??u??`${i.toUpperCase()} ${o}`,T=u??`${i}:${o}`,l=`/paths/${encodeURIComponent(o)}/${i}`;r.push({id:T,path:o,method:i,name:g,summary:a,description:p,operationId:u,deprecated:q(c.deprecated)===!0,tags:m,pointer:l,raw:c})}}return r}function $e(e){let t=K(e.tags);if(!t)return[];let r=[];for(let o of t){let n=h(o),d=O(n?.name);!d||!n||r.push({name:d,displayName:ke(n)??d,description:O(n.description),parent:O(n.parent),order:H(n)})}return r}function Ie(e){return e.some(t=>t.parent!==void 0)}function G(e,t,r,o){let n=t.expandOperationDetails?Re(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:H(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:r,kind:"operation"},children:n&&n.length>0?n:void 0}}function xe(e,t,r,o){let n=new Map;for(let a of t){if(U(a.raw,r.showInternal))continue;let p=a.tags.length>0?a.tags:["Other"];for(let m of p){let g=n.get(m)??[];g.push(a),n.set(m,g)}}let d=a=>{let m=(n.get(a.name)??[]).map(g=>G(g,r,"oas32-parent",a.name));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:f(m),metadata:{description:a.description,source:"oas32-parent",kind:"tag"}}},i=new Set(e.map(a=>a.name)),s=[...e];for(let a of n.keys())a!=="Other"&&!i.has(a)&&s.push({name:a,displayName:a});let c=P(s,d,o),u=n.get("Other")??[];if(u.length>0&&!e.some(a=>a.name==="Other")){let a=u.map(p=>G(p,r,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(a),metadata:{source:"fallback",kind:"tag"}})}return f(c)}function Ce(e,t,r){let o=new Map,n=new Map;for(let s=0;s<e.length;s+=1)n.set(e[s].name,s);for(let s of t){if(U(s.raw,r.showInternal))continue;let c=s.tags.length>0?s.tags:["Other"];for(let u of c){let a=o.get(u)??[];a.push(s),o.set(u,a)}}let d=new Map;for(let s of e)d.set(s.name,s.displayName);let i=[];for(let[s,c]of o){let u=c.map(a=>G(a,r,"tag",s));i.push({id:`tag:${s}`,name:d.get(s)??s,order:s==="Other"?Number.MAX_SAFE_INTEGER:n.get(s),children:f(u),metadata:{source:"tag",kind:"tag"}})}return f(i)}function Me(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function v(e,t,r=0,o={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(r>=128||o.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];o.active.add(e);let n=[];for(let d of e){if(o.remaining<=0){o.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),o.warned=!0;break}let i=h(d);if(!i||typeof i.name!="string")continue;o.remaining--;let s={name:i.name};Array.isArray(i.tags)&&(s.tags=i.tags.filter(c=>typeof c=="string")),Array.isArray(i.groups)&&(s.groups=v(i.groups,t,r+1,o)),n.push(s)}return o.active.delete(e),n}function ee(e,t,r,o,n,d=0){let i=[];if(e.tags)for(let s of e.tags){let c=t.get(s);if(!c||c.length===0)continue;let u=c.map(a=>G(a,n,"tag-group",s));i.push({id:`tag:${s}`,name:r.get(s)??s,order:o.get(s),children:f(u),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let s of e.groups)i.push(ee(s,t,r,o,n,d+1));return{id:`tag-group:${e.name}`,name:e.name,order:d*1e3,children:f(i),metadata:{source:"tag-group",kind:"tag-group"}}}function qe(e,t,r,o,n){let d=new Map,i=new Map,s=new Map;for(let p=0;p<t.length;p+=1)i.set(t[p].name,p),s.set(t[p].name,t[p].displayName);for(let p of r){if(U(p.raw,o.showInternal))continue;let m=p.tags.length>0?p.tags:["Other"];for(let g of m){let T=d.get(g)??[];T.push(p),d.set(g,T)}}let u=v(e["x-tagGroups"],n).map(p=>ee(p,d,s,i,o)),a=d.get("Other");if(a&&a.length>0){let p=a.map(m=>G(m,o,"fallback","Other"));u.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(p),metadata:{source:"fallback",kind:"tag"}})}return f(u)}function Ge(e,t){if(!t.showComponents)return;let r=h(e.components),o=h(r?.schemas);if(!o)return;let n=[];for(let[d,i]of Object.entries(o)){let s=h(i);!s||U(s,t.showInternal)||n.push({id:`schema:${d}`,name:d,order:H(s),metadata:{description:O(s.description),pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"tag",kind:"component"}}}function Je(e){let t=new Map,r=X(e);for(let o=r.length-1;o>=0;o--){let n=r[o].node,d=n.children?.map(s=>t.get(s)).filter(Boolean),i=(n.metadata?.kind==="operation"?1:0)+(d?.reduce((s,c)=>s+(c.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:d,metadata:{...n.metadata,operationCount:i}})}return e.map(o=>t.get(o))}function Pe(e,t={}){let r={...we,...t},o=[],n=h(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=Se(n),i=$e(n),s;Ie(i)?s=xe(i,d,r,o):Me(n)?s=qe(n,i,d,r,o):s=Ce(i,d,r);let c=Ge(n,r),u=Je([...s,...c?[c]:[]]);return{root:{id:"root",name:"API Documentation",children:f(u),metadata:{kind:"root"}},warnings:o}}export{fe as a,Oe as b,Ne as c,ye as d,Pe as e};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var v=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Se=Object.getOwnPropertyNames;var xe=Object.prototype.hasOwnProperty;var Ie=(e,n)=>{for(var r in n)v(e,r,{get:n[r],enumerable:!0})},$e=(e,n,r,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of Se(n))!xe.call(e,t)&&t!==r&&v(e,t,{get:()=>n[t],enumerable:!(o=Ae(n,t))||o.enumerable});return e};var Ce=e=>$e(v({},"__esModule",{value:!0}),e);var pn={};Ie(pn,{buildDocTree:()=>De,buildOpenApiTree:()=>ge,buildSchemaTree:()=>ye,countNodes:()=>oe,filterTree:()=>ae,findNode:()=>C,findPath:()=>H,findSchemaNodeByPath:()=>Oe,flattenTree:()=>_,formatSchemaType:()=>be,getBranchIds:()=>de,getExpandableIds:()=>W,getLeaves:()=>re,getMaxDepth:()=>ie,insertChild:()=>ce,isTreeNode:()=>te,moveNode:()=>me,removeNode:()=>X,reorderNode:()=>ue,sortNodes:()=>f,sortTree:()=>se,updateNode:()=>M});module.exports=Ce(pn);function te(e){return e!=null}function*A(e,n=1/0){let r=new Set,o=[];for(let t=e.length-1;t>=0;t--)o.push({node:e[t],depth:1});for(;o.length;){let t=o.pop();if(r.has(t.node)||t.depth>n)continue;r.add(t.node),yield t;let d=t.node.children??[];for(let i=d.length-1;i>=0;i--)o.push({node:d[i],parent:t,depth:t.depth+1})}}function C(e,n){for(let{node:r}of A(e))if(r.id===n)return r}function H(e,n,r=[]){for(let o of A(e)){if(o.node.id!==n)continue;let t=[],d=o;for(;d;)t.push(d.node),d=d.parent;t.reverse();let i=[...r,...t];return{nodes:i,target:o.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(c=>c.id)}}return null}function re(e){let n=[];for(let{node:r}of A(e))r.children?.length||n.push(r);return n}function oe(e){let n=0;for(let r of A(e))n++;return n}function ie(e){let n=0;for(let r of A(e))n=Math.max(n,r.depth);return n}var Me=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function f(e){return[...e].sort((n,r)=>{let o=(n.order??Number.MAX_SAFE_INTEGER)-(r.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(o)?0:o)||Me.compare(n.name,r.name)||n.id.localeCompare(r.id)})}function F(e,n,r=()=>!0){let o=new Set,t=new Map,d=[{source:e,output:[],index:0}];for(;d.length;){let i=d[d.length-1];if(i.index<i.source.length){let a=i.source[i.index++];if(o.has(a))continue;if(t.has(a)){let u=t.get(a);u&&i.output.push(u)}else if(a.children?.length&&r(a))o.add(a),d.push({source:a.children,output:[],index:0,owner:a});else{let u=n(a);t.set(a,u),u&&i.output.push(u)}continue}d.pop();let c=i.source.length===i.output.length&&i.source.every((a,u)=>a===i.output[u])?i.source:i.output;if(!i.owner)return c;let s=i.owner,p=n(c===s.children?s:{...s,children:c});o.delete(s),t.set(s,p),p&&d[d.length-1].output.push(p)}return e}function se(e){return f(F(e,n=>n.children?.length?{...n,children:f(n.children)}:n))}function ae(e,n){let r=n.query.trim().toLowerCase();return r?F(e,o=>o.name.toLowerCase().includes(r)||o.id.toLowerCase().includes(r)||(n.keepAncestors??!0)&&o.children?.length?o:null):e}function W(e,n={}){let r=[];for(let{node:o,depth:t}of A(e,n.maxDepth??1/0))t<=(n.maxDepth??1/0)&&(!(n.onlyWithChildren??!0)||o.children?.length)&&r.push(o.id);return r}function de(e){return W(e)}function _(e){return Array.from(A(e),({node:n,depth:r})=>({node:n,depth:r}))}function M(e,n,r){return F(e,o=>o.id===n?r(o):o,o=>o.id!==n)}function X(e,n){return F(e,r=>r.id===n?null:r,r=>r.id!==n)}function ce(e,n,r){return M(e,n,o=>({...o,children:[...o.children??[],r]}))}function pe(e,n){return Math.max(0,Math.min(Number.isNaN(e)?0:Math.trunc(e),n))}function ue(e,n,r){let o=H(e,n);if(!o)return null;let t=o.parent?.children??e,d=t.indexOf(o.target),i=pe(r,t.length-1),c={nodes:e,moved:o.target,parentId:o.parent?.id??null,fromIndex:d,toIndex:i};if(i===d)return c;let s=[...t];return s.splice(d,1),s.splice(i,0,o.target),{...c,nodes:o.parent?M(e,o.parent.id,p=>({...p,children:s})):s}}function me(e,n,r,o){let t=C(e,n);if(!t||r!==null&&(!C(e,r)||C([t],r)))return null;let d=X(e,n),i=c=>{let s=[...c];return s.splice(pe(o??s.length,s.length),0,t),s};return r===null?i(d):M(d,r,c=>({...c,children:i(c.children??[])}))}function U(e,n,r){let o=new Map;for(let s of e)o.has(s.name)?r.push(`Duplicate tag "${s.name}" was ignored.`):o.set(s.name,s);let t=new Map;for(let s of o.values())s.parent&&!o.has(s.parent)&&r.push(`Tag "${s.name}" references unknown parent "${s.parent}", treating as root.`),t.set(s.name,s.parent&&o.has(s.parent)?s.parent:null);let d=new Set;for(let s of o.keys()){let p=new Set,a=s;for(;a!==null&&!d.has(a);){if(p.has(a)){r.push(`Circular tag reference detected at "${a}". Breaking cycle.`),t.set(a,null);break}p.add(a),a=t.get(a)??null}for(let u of p)d.add(u)}let i=new Map(Array.from(o,([s,p])=>[s,n(p)])),c=[];for(let[s,p]of i){let a=t.get(s);if(a==null)c.push(p);else{let u=i.get(a);(u.children??(u.children=[])).push(p)}}for(let s of i.values())s.children&&(s.children=f(s.children));return f(c)}var fe=["get","put","post","delete","options","head","patch","trace"],Ee={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function N(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Ge(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function j(e){return typeof e=="boolean"?e:void 0}function E(e){return Array.isArray(e)?e:void 0}function G(e,n){return n?!1:j(e["x-scalar-ignore"])===!0||j(e["x-internal"])===!0}function R(e){return Ge(e["x-order"])}function qe(e){return w(e["x-displayName"])}function Pe(e){let n=N(e.paths);if(!n)return[];let r=[];for(let[o,t]of Object.entries(n)){let d=N(t);if(d)for(let i of fe){let c=d[i];if(c==null)continue;let s=N(c);if(!s)continue;let p=w(s.operationId),a=w(s.summary),u=E(s.tags)?.filter(O=>typeof O=="string").map(O=>O.trim()).filter(O=>O.length>0)??[],m=a??p??`${i.toUpperCase()} ${o}`,g=p??`${i}:${o}`,T=`/paths/${encodeURIComponent(o)}/${i}`;r.push({id:g,path:o,method:i,name:m,summary:a,operationId:p,deprecated:j(s.deprecated)===!0,tags:u,pointer:T,raw:s})}}return r}function Je(e){let n=E(e.tags);if(!n)return[];let r=[];for(let o of n){let t=N(o),d=w(t?.name);!d||!t||r.push({name:d,displayName:qe(t)??d,description:w(t.description),parent:w(t.parent),order:R(t),raw:t})}return r}function Be(e){return e.some(n=>n.parent!==void 0)}function z(e){return{id:`op:root:${e.id}`,name:e.name,order:R(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function Fe(e,n,r,o){let t=new Map,d=[];for(let a of n)if(!G(a.raw,r.showInternal)){if(a.tags.length===0){d.push(a);continue}for(let u of a.tags){let m=t.get(u)??[];m.push(a),t.set(u,m)}}let i=a=>{let m=(t.get(a.name)??[]).map(g=>({id:`op:${a.name}:${g.id}`,name:g.name,order:R(g.raw),metadata:{method:g.method,path:g.path,operationId:g.operationId,deprecated:g.deprecated,summary:g.summary,pointer:g.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:f(m),metadata:{source:"oas32-parent",kind:"tag"}}},c=new Set(e.map(a=>a.name)),s=[...e];for(let a of t.keys())c.has(a)||s.push({name:a,displayName:a,raw:{}});let p=U(s,i,o);return f([...p,...d.map(z)])}function _e(e){let n=E(e["x-tagGroups"]);if(!n)return[];let r=(o,t)=>{let d=N(o),i=w(d?.name),c=E(d?.tags)?.filter(p=>typeof p=="string").map(p=>p.trim()).filter(p=>p.length>0)??[];if(!i)return null;let s=E(d?.groups)?.map((p,a)=>r(p,a)).filter(p=>p!==null)??[];return{name:i,tags:c,groups:s.length>0?s:void 0,order:R(d??{})??t}};return n.map((o,t)=>r(o,t)).filter(o=>o!==null)}function Ue(e,n,r,o){let t=new Map;for(let a of n)t.set(a.name,a.displayName);let d=new Map,i=[];for(let a of r)if(!G(a.raw,o.showInternal)){if(a.tags.length===0){i.push(a);continue}for(let u of a.tags){let m=d.get(u)??[];m.push(a),d.set(u,m)}}let c=a=>(d.get(a)??[]).map(m=>({id:`op:${a}:${m.id}`,name:m.name,order:R(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),s=a=>({id:`tag:${a}`,name:t.get(a)??a,children:f(c(a)),metadata:{source:"tag-group",kind:"tag"}}),p=a=>{let u=[];for(let m of a.tags)d.get(m)?.length&&u.push(s(m));for(let m of a.groups??[])u.push(p(m));return{id:`tag-group:${a.name}`,name:a.name,order:a.order,children:f(u),metadata:{source:"tag-group",kind:"tag-group"}}};return f([...e.map(p),...i.map(z)])}function je(e,n,r){let o=new Map,t=[],d=new Map;for(let s=0;s<e.length;s+=1){let p=e[s];d.set(p.name,p.order??s)}for(let s of n)if(!G(s.raw,r.showInternal)){if(s.tags.length===0){t.push(s);continue}for(let p of s.tags){let a=o.get(p)??[];a.push(s),o.set(p,a)}}let i=new Map;for(let s of e)i.set(s.name,s.displayName);let c=[];for(let[s,p]of o){let a=p.map(u=>({id:`op:${s}:${u.id}`,name:u.name,order:R(u.raw),metadata:{method:u.method,path:u.path,operationId:u.operationId,deprecated:u.deprecated,summary:u.summary,pointer:u.pointer,source:"tag",kind:"operation"}}));c.push({id:`tag:${s}`,name:i.get(s)??s,order:d.get(s),children:f(a),metadata:{source:"tag",kind:"tag"}})}return f([...c,...t.map(z)])}function Le(e,n){if(!n.showComponents)return;let r=N(e.components),o=N(r?.schemas);if(!o)return;let t=[];for(let[d,i]of Object.entries(o)){let c=N(i);!c||G(c,n.showInternal)||t.push({id:`schema:${d}`,name:d,order:R(c),metadata:{pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(t),metadata:{source:"section",kind:"section",section:"components"}}}function Ke(e,n){if(!n.showWebhooks)return;let r=N(e.webhooks);if(!r)return;let o=[];for(let[t,d]of Object.entries(r)){let i=N(d);if(i)for(let c of fe){let s=i[c],p=N(s);if(!p||G(p,n.showInternal))continue;let a=w(p.operationId),u=w(p.summary),m=u??a??`${c.toUpperCase()} ${t}`;o.push({id:`webhook:${t}:${c}`,name:m,order:R(p),metadata:{method:c,path:t,operationId:a,deprecated:j(p.deprecated)===!0,summary:u,pointer:`/webhooks/${encodeURIComponent(t)}/${c}`,source:"tag",kind:"webhook"}})}}if(o.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}}function ge(e,n={}){let r={...Ee,...n},o=[],t=N(e);if(!t)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=Pe(t),i=Je(t),c;if(Be(i))c=Fe(i,d,r,o);else{let m=_e(t);m.length>0?c=Ue(m,i,d,r):c=je(i,d,r)}let s=Ke(t,r),p=Le(t,r),u=[{id:"section:apis",name:"APIs",children:c,metadata:{kind:"section",source:"section",section:"apis"},order:0},...s?[s]:[],...p?[p]:[]];return{root:{id:"root",name:"OpenAPI",children:f(u),metadata:{kind:"root"}},warnings:o}}var le={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},V={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},he=new Set(["string","number","integer","boolean","null"]);function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Y(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Te(e){return typeof e=="boolean"?e:void 0}function Q(e){return Array.isArray(e)?e:void 0}function ve(e){let n=e.type;if(typeof n=="string"||Array.isArray(n)&&n.every(r=>typeof r=="string"))return n}function He(e){return e?Array.isArray(e)?e.every(n=>he.has(n)):he.has(e):!1}function We(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Ne(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function x(e){return e.map(n=>n.replace(/[\\.\[\]]/g,r=>`\\${r}`)).join(".")||"root"}function L(e,n,r,o,t,d){t.remaining--;let i=ve(n),c=Y(n.format),s=Y(n.description),p=Te(n.deprecated)===!0,a=We(i),u={jsonPath:r,type:i,format:c,required:d,deprecated:p,description:s,kind:a},m=Y(n.$ref);if(m){if(t.refStack.has(m))return t.warnings.push(`Circular $ref detected at ${r.join(".")}: ${m}. Breaking recursion.`),{id:x(r),name:e,metadata:{...u,kind:"ref",isLeaf:!0}};t.refStack.add(m)}let g,T=He(i),O=t.activeSchemas.has(n);if(O&&t.warnings.push(`Circular schema object detected at ${x(r)}.`),O||o>=t.options.maxDepth||t.remaining<=0)return m&&t.refStack.delete(m),{id:x(r),name:e,metadata:{...u,isLeaf:!0}};t.activeSchemas.add(n);let k=q(n.properties);if(k){let S=Q(n.required)??[],y=new Set(S.filter(b=>typeof b=="string")),B=[];for(let[b,I]of Object.entries(k)){if(t.remaining<=0)break;let $=q(I);$&&(!t.options.showDeprecated&&Te($.deprecated)===!0||B.push(L(b,$,[...r,"properties",b],o+1,t,y.has(b))))}g=[...g??[],...f(B)],T=!1}if(t.remaining>0&&t.options.showArrayItems&&i==="array"){let S=q(n.items);if(S){let y=L("items",S,[...r,"items"],o+1,t,!1);g=[...g??[],y],T=!1}else u.hasItems=!1}if(t.options.expandCombinators){let S=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:y,kind:B}of S){if(t.remaining<=0)break;let b=Q(n[y]);if(!b?.length)continue;t.remaining--;let I=[];for(let D=0;D<b.length&&t.remaining>0;D++){let Re=b[D],ne=q(Re);if(!ne){t.remaining--,I.push({id:x([...r,y,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...r,y,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(L(`[${D}]`,ne,[...r,y,String(D)],o+1,t,!1))}let $={id:x([...r,y]),name:y,children:f(I),metadata:{jsonPath:[...r,y],kind:B}};g=[...g??[],$],T=!1}}return Q(n.enum)?.length&&!g?.length&&(u.kind="enum",T=!0),m&&t.refStack.delete(m),t.activeSchemas.delete(n),{id:x(r),name:e,order:Object.prototype.hasOwnProperty.call(le,e)?le[e]:void 0,metadata:{...u,isLeaf:T},children:g}}function ye(e,n={}){let r={...V,...n};r.maxDepth=Number.isFinite(r.maxDepth)?Math.min(128,Math.max(0,Math.trunc(r.maxDepth))):V.maxDepth,r.maxNodes=Number.isFinite(r.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(r.maxNodes))):V.maxNodes;let o=[],t=q(e);if(!t)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let d={options:r,warnings:o,refStack:new Set,activeSchemas:new Set,remaining:r.maxNodes},i=L("root",t,[],0,d,!0);return d.remaining<=0&&o.push(`Schema node limit (${r.maxNodes}) reached; remaining branches were omitted.`),{root:i,warnings:o}}function Oe(e,n){if(n.length===0)return e;let r=JSON.stringify(n),o=[e],t=new Set;for(let d=0;d<o.length;d++){let i=o[d];if(!i||t.has(i))continue;if(t.add(i),JSON.stringify(i.metadata?.jsonPath)===r)return i;for(let s of i.children??[])o.push(s)}}function be(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Ne(e.type)} (${e.format})`:Ne(e.type)}var Xe=["get","put","post","delete","options","head","patch","trace"],ze={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function P(e){return typeof e=="boolean"?e:void 0}function Z(e){return Array.isArray(e)?e:void 0}function K(e,n){return n?!1:P(e["x-scalar-ignore"])===!0||P(e["x-internal"])===!0}function ee(e){let n=e["x-order"];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Ve(e){return h(e["x-displayName"])}function Ye(e,n){let r=[];for(let o of e){let t=l(o);if(!t)continue;let d=h(t.name),i=h(t.in);if(!d||!i)continue;let c=`${i}:${d}`;r.push({id:`${n}/parameters/${encodeURIComponent(c)}`,name:d,metadata:{paramIn:i,required:P(t.required)===!0,description:h(t.description),pointer:`${n}/parameters`,kind:"parameter"}})}return f(r)}function Qe(e,n){let r=[];for(let[o,t]of Object.entries(e)){let d=l(t);if(!d)continue;let i=h(d.description),c=l(d.content),s=[];if(c)for(let[p]of Object.entries(c))s.push({id:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,name:p,metadata:{contentType:p,pointer:`${n}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,kind:"content"}});r.push({id:`${n}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:i,pointer:`${n}/responses/${encodeURIComponent(o)}`,kind:"response"},children:s.length>0?s:void 0})}return f(r)}function Ze(e,n){let r=[],o=Z(e.parameters);if(o?.length){let i=Ye(o,n);i.length>0&&r.push({id:`${n}/parameters`,name:"Parameters",children:i,metadata:{pointer:`${n}/parameters`,kind:"parameters"}})}let t=l(e.requestBody);if(t){let i=l(t.content),c=[];if(i)for(let[s]of Object.entries(i))c.push({id:`${n}/requestBody/content/${encodeURIComponent(s)}`,name:s,metadata:{contentType:s,pointer:`${n}/requestBody/content/${encodeURIComponent(s)}`,kind:"content"}});r.push({id:`${n}/requestBody`,name:"Request Body",metadata:{description:h(t.description),required:P(t.required)===!0,pointer:`${n}/requestBody`,kind:"request-body"},children:c.length>0?c:void 0})}let d=l(e.responses);if(d){let i=Qe(d,n);i.length>0&&r.push({id:`${n}/responses`,name:"Responses",children:i,metadata:{pointer:`${n}/responses`,kind:"responses"}})}return r}function en(e){let n=l(e.paths);if(!n)return[];let r=[];for(let[o,t]of Object.entries(n)){let d=l(t);if(d)for(let i of Xe){let c=d[i],s=l(c);if(!s)continue;let p=h(s.operationId),a=h(s.summary),u=h(s.description),m=Z(s.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],g=a??p??`${i.toUpperCase()} ${o}`,T=p??`${i}:${o}`,O=`/paths/${encodeURIComponent(o)}/${i}`;r.push({id:T,path:o,method:i,name:g,summary:a,description:u,operationId:p,deprecated:P(s.deprecated)===!0,tags:m,pointer:O,raw:s})}}return r}function nn(e){let n=Z(e.tags);if(!n)return[];let r=[];for(let o of n){let t=l(o),d=h(t?.name);!d||!t||r.push({name:d,displayName:Ve(t)??d,description:h(t.description),parent:h(t.parent),order:ee(t)})}return r}function tn(e){return e.some(n=>n.parent!==void 0)}function J(e,n,r,o){let t=n.expandOperationDetails?Ze(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:ee(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:r,kind:"operation"},children:t&&t.length>0?t:void 0}}function rn(e,n,r,o){let t=new Map;for(let a of n){if(K(a.raw,r.showInternal))continue;let u=a.tags.length>0?a.tags:["Other"];for(let m of u){let g=t.get(m)??[];g.push(a),t.set(m,g)}}let d=a=>{let m=(t.get(a.name)??[]).map(g=>J(g,r,"oas32-parent",a.name));return{id:`tag:${a.name}`,name:a.displayName,order:a.order,children:f(m),metadata:{description:a.description,source:"oas32-parent",kind:"tag"}}},i=new Set(e.map(a=>a.name)),c=[...e];for(let a of t.keys())a!=="Other"&&!i.has(a)&&c.push({name:a,displayName:a});let s=U(c,d,o),p=t.get("Other")??[];if(p.length>0&&!e.some(a=>a.name==="Other")){let a=p.map(u=>J(u,r,"fallback","Other"));s.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(a),metadata:{source:"fallback",kind:"tag"}})}return f(s)}function on(e,n,r){let o=new Map,t=new Map;for(let c=0;c<e.length;c+=1)t.set(e[c].name,c);for(let c of n){if(K(c.raw,r.showInternal))continue;let s=c.tags.length>0?c.tags:["Other"];for(let p of s){let a=o.get(p)??[];a.push(c),o.set(p,a)}}let d=new Map;for(let c of e)d.set(c.name,c.displayName);let i=[];for(let[c,s]of o){let p=s.map(a=>J(a,r,"tag",c));i.push({id:`tag:${c}`,name:d.get(c)??c,order:c==="Other"?Number.MAX_SAFE_INTEGER:t.get(c),children:f(p),metadata:{source:"tag",kind:"tag"}})}return f(i)}function sn(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function we(e,n,r=0,o={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(r>=128||o.active.has(e))return n.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];o.active.add(e);let t=[];for(let d of e){if(o.remaining<=0){o.warned||n.push("Tag group limit (10,000) reached; remaining groups were omitted."),o.warned=!0;break}let i=l(d);if(!i||typeof i.name!="string")continue;o.remaining--;let c={name:i.name};Array.isArray(i.tags)&&(c.tags=i.tags.filter(s=>typeof s=="string")),Array.isArray(i.groups)&&(c.groups=we(i.groups,n,r+1,o)),t.push(c)}return o.active.delete(e),t}function ke(e,n,r,o,t,d=0){let i=[];if(e.tags)for(let c of e.tags){let s=n.get(c);if(!s||s.length===0)continue;let p=s.map(a=>J(a,t,"tag-group",c));i.push({id:`tag:${c}`,name:r.get(c)??c,order:o.get(c),children:f(p),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let c of e.groups)i.push(ke(c,n,r,o,t,d+1));return{id:`tag-group:${e.name}`,name:e.name,order:d*1e3,children:f(i),metadata:{source:"tag-group",kind:"tag-group"}}}function an(e,n,r,o,t){let d=new Map,i=new Map,c=new Map;for(let u=0;u<n.length;u+=1)i.set(n[u].name,u),c.set(n[u].name,n[u].displayName);for(let u of r){if(K(u.raw,o.showInternal))continue;let m=u.tags.length>0?u.tags:["Other"];for(let g of m){let T=d.get(g)??[];T.push(u),d.set(g,T)}}let p=we(e["x-tagGroups"],t).map(u=>ke(u,d,c,i,o)),a=d.get("Other");if(a&&a.length>0){let u=a.map(m=>J(m,o,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(u),metadata:{source:"fallback",kind:"tag"}})}return f(p)}function dn(e,n){if(!n.showComponents)return;let r=l(e.components),o=l(r?.schemas);if(!o)return;let t=[];for(let[d,i]of Object.entries(o)){let c=l(i);!c||K(c,n.showInternal)||t.push({id:`schema:${d}`,name:d,order:ee(c),metadata:{description:h(c.description),pointer:`/components/schemas/${encodeURIComponent(d)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(t),metadata:{source:"tag",kind:"component"}}}function cn(e){let n=new Map,r=_(e);for(let o=r.length-1;o>=0;o--){let t=r[o].node,d=t.children?.map(c=>n.get(c)).filter(Boolean),i=(t.metadata?.kind==="operation"?1:0)+(d?.reduce((c,s)=>c+(s.metadata?.operationCount??0),0)??0);n.set(t,{...t,children:d,metadata:{...t.metadata,operationCount:i}})}return e.map(o=>n.get(o))}function De(e,n={}){let r={...ze,...n},o=[],t=l(e);if(!t)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let d=en(t),i=nn(t),c;tn(i)?c=rn(i,d,r,o):sn(t)?c=an(t,i,d,r,o):c=on(i,d,r);let s=dn(t,r),p=cn([...c,...s?[s]:[]]);return{root:{id:"root",name:"API Documentation",children:f(p),metadata:{kind:"root"}},warnings:o}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,countNodes,filterTree,findNode,findPath,findSchemaNodeByPath,flattenTree,formatSchemaType,getBranchIds,getExpandableIds,getLeaves,getMaxDepth,insertChild,isTreeNode,moveNode,removeNode,reorderNode,sortNodes,sortTree,updateNode});
|
|
1
|
+
"use strict";var v=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Se=Object.getOwnPropertyNames;var xe=Object.prototype.hasOwnProperty;var Ie=(e,n)=>{for(var o in n)v(e,o,{get:n[o],enumerable:!0})},$e=(e,n,o,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of Se(n))!xe.call(e,t)&&t!==o&&v(e,t,{get:()=>n[t],enumerable:!(r=Ae(n,t))||r.enumerable});return e};var Ce=e=>$e(v({},"__esModule",{value:!0}),e);var pn={};Ie(pn,{buildDocTree:()=>De,buildOpenApiTree:()=>ge,buildSchemaTree:()=>ye,countNodes:()=>oe,filterTree:()=>ae,findNode:()=>C,findPath:()=>H,findSchemaNodeByPath:()=>Oe,flattenTree:()=>_,formatSchemaType:()=>be,getBranchIds:()=>de,getExpandableIds:()=>W,getLeaves:()=>re,getMaxDepth:()=>ie,insertChild:()=>ce,isTreeNode:()=>te,moveNode:()=>me,removeNode:()=>X,reorderNode:()=>ue,sortNodes:()=>g,sortTree:()=>se,updateNode:()=>M});module.exports=Ce(pn);function te(e){return e!=null}function*A(e,n=1/0){let o=new Set,r=[];for(let t=e.length-1;t>=0;t--)r.push({node:e[t],depth:1});for(;r.length;){let t=r.pop();if(o.has(t.node)||t.depth>n)continue;o.add(t.node),yield t;let a=t.node.children??[];for(let i=a.length-1;i>=0;i--)r.push({node:a[i],parent:t,depth:t.depth+1})}}function C(e,n){for(let{node:o}of A(e))if(o.id===n)return o}function H(e,n,o=[]){for(let r of A(e)){if(r.node.id!==n)continue;let t=[],a=r;for(;a;)t.push(a.node),a=a.parent;t.reverse();let i=[...o,...t];return{nodes:i,target:r.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(d=>d.id)}}return null}function re(e){let n=[];for(let{node:o}of A(e))o.children?.length||n.push(o);return n}function oe(e){let n=0;for(let o of A(e))n++;return n}function ie(e){let n=0;for(let o of A(e))n=Math.max(n,o.depth);return n}var Me=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function g(e){return[...e].sort((n,o)=>{let r=(n.order??Number.MAX_SAFE_INTEGER)-(o.order??Number.MAX_SAFE_INTEGER);return(Number.isNaN(r)?0:r)||Me.compare(n.name,o.name)||n.id.localeCompare(o.id)})}function F(e,n,o=()=>!0){let r=new Set,t=new Map,a=[{source:e,output:[],index:0}];for(;a.length;){let i=a[a.length-1];if(i.index<i.source.length){let s=i.source[i.index++];if(r.has(s))continue;if(t.has(s)){let p=t.get(s);p&&i.output.push(p)}else if(s.children?.length&&o(s))r.add(s),a.push({source:s.children,output:[],index:0,owner:s});else{let p=n(s);t.set(s,p),p&&i.output.push(p)}continue}a.pop();let d=i.source.length===i.output.length&&i.source.every((s,p)=>s===i.output[p])?i.source:i.output;if(!i.owner)return d;let c=i.owner,u=n(d===c.children?c:{...c,children:d});r.delete(c),t.set(c,u),u&&a[a.length-1].output.push(u)}return e}function se(e){return g(F(e,n=>n.children?.length?{...n,children:g(n.children)}:n))}function ae(e,n){let o=n.query.trim().toLowerCase();return o?F(e,r=>r.name.toLowerCase().includes(o)||r.id.toLowerCase().includes(o)||(n.keepAncestors??!0)&&r.children?.length?r:null):e}function W(e,n={}){let o=[];for(let{node:r,depth:t}of A(e,n.maxDepth??1/0))t<=(n.maxDepth??1/0)&&(!(n.onlyWithChildren??!0)||r.children?.length)&&o.push(r.id);return o}function de(e){return W(e)}function _(e){return Array.from(A(e),({node:n,depth:o})=>({node:n,depth:o}))}function M(e,n,o){return F(e,r=>r.id===n?o(r):r,r=>r.id!==n)}function X(e,n){return F(e,o=>o.id===n?null:o,o=>o.id!==n)}function ce(e,n,o){return M(e,n,r=>({...r,children:[...r.children??[],o]}))}function pe(e,n){return Math.max(0,Math.min(Number.isNaN(e)?0:Math.trunc(e),n))}function ue(e,n,o){let r=H(e,n);if(!r)return null;let t=r.parent?.children??e,a=t.indexOf(r.target),i=pe(o,t.length-1),d={nodes:e,moved:r.target,parentId:r.parent?.id??null,fromIndex:a,toIndex:i};if(i===a)return d;let c=[...t];return c.splice(a,1),c.splice(i,0,r.target),{...d,nodes:r.parent?M(e,r.parent.id,u=>({...u,children:c})):c}}function me(e,n,o,r){let t=C(e,n);if(!t||o!==null&&(!C(e,o)||C([t],o)))return null;let a=X(e,n),i=d=>{let c=[...d];return c.splice(pe(r??c.length,c.length),0,t),c};return o===null?i(a):M(a,o,d=>({...d,children:i(d.children??[])}))}function U(e,n,o){let r=new Map;for(let c of e)r.has(c.name)?o.push(`Duplicate tag "${c.name}" was ignored.`):r.set(c.name,c);let t=new Map;for(let c of r.values())c.parent&&!r.has(c.parent)&&o.push(`Tag "${c.name}" references unknown parent "${c.parent}", treating as root.`),t.set(c.name,c.parent&&r.has(c.parent)?c.parent:null);let a=new Set;for(let c of r.keys()){let u=new Set,s=c;for(;s!==null&&!a.has(s);){if(u.has(s)){o.push(`Circular tag reference detected at "${s}". Breaking cycle.`),t.set(s,null);break}u.add(s),s=t.get(s)??null}for(let p of u)a.add(p)}let i=new Map(Array.from(r,([c,u])=>[c,n(u)])),d=[];for(let[c,u]of i){let s=t.get(c);if(s==null)d.push(u);else{let p=i.get(s);(p.children??(p.children=[])).push(u)}}for(let c of i.values())c.children&&(c.children=g(c.children));return g(d)}var fe=["get","put","post","delete","options","head","patch","trace"],Ee={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Ge(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function j(e){return typeof e=="boolean"?e:void 0}function E(e){return Array.isArray(e)?e:void 0}function G(e,n){return n?!1:j(e["x-scalar-ignore"])===!0||j(e["x-internal"])===!0}function R(e){return Ge(e["x-order"])}function qe(e){return w(e["x-displayName"])}function Pe(e){let n=y(e.paths);if(!n)return[];let o=[];for(let[r,t]of Object.entries(n)){let a=y(t);if(a)for(let i of fe){let d=a[i];if(d==null)continue;let c=y(d);if(!c)continue;let u=w(c.operationId),s=w(c.summary),p=E(c.tags)?.filter(l=>typeof l=="string").map(l=>l.trim()).filter(l=>l.length>0)??[],m=s??u??`${i.toUpperCase()} ${r}`,f=u??`${i}:${r}`,T=`/paths/${encodeURIComponent(r)}/${i}`;o.push({id:f,path:r,method:i,name:m,summary:s,operationId:u,deprecated:j(c.deprecated)===!0,tags:p,pointer:T,raw:c})}}return o}function Je(e){let n=E(e.tags);if(!n)return[];let o=[];for(let r of n){let t=y(r),a=w(t?.name);!a||!t||o.push({name:a,displayName:qe(t)??a,description:w(t.description),parent:w(t.parent),order:R(t),raw:t})}return o}function Be(e){return e.some(n=>n.parent!==void 0)}function z(e){return{id:`op:root:${e.id}`,name:e.name,order:R(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function Fe(e,n,o,r){let t=new Map,a=[];for(let s of n)if(!G(s.raw,o.showInternal)){if(s.tags.length===0){a.push(s);continue}for(let p of s.tags){let m=t.get(p)??[];m.push(s),t.set(p,m)}}let i=s=>{let m=(t.get(s.name)??[]).map(f=>({id:`op:${s.name}:${f.id}`,name:f.name,order:R(f.raw),metadata:{method:f.method,path:f.path,operationId:f.operationId,deprecated:f.deprecated,summary:f.summary,pointer:f.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${s.name}`,name:s.displayName,order:s.order,children:g(m),metadata:{source:"oas32-parent",kind:"tag"}}},d=new Set(e.map(s=>s.name)),c=[...e];for(let s of t.keys())d.has(s)||c.push({name:s,displayName:s,raw:{}});let u=U(c,i,r);return g([...u,...a.map(z)])}function _e(e){let n=E(e["x-tagGroups"]);if(!n)return[];let o=(r,t)=>{let a=y(r),i=w(a?.name),d=E(a?.tags)?.filter(u=>typeof u=="string").map(u=>u.trim()).filter(u=>u.length>0)??[];if(!i)return null;let c=E(a?.groups)?.map((u,s)=>o(u,s)).filter(u=>u!==null)??[];return{name:i,tags:d,groups:c.length>0?c:void 0,order:R(a??{})??t}};return n.map((r,t)=>o(r,t)).filter(r=>r!==null)}function Ue(e,n,o,r){let t=new Map;for(let s of n)t.set(s.name,s.displayName);let a=new Map,i=[];for(let s of o)if(!G(s.raw,r.showInternal)){if(s.tags.length===0){i.push(s);continue}for(let p of s.tags){let m=a.get(p)??[];m.push(s),a.set(p,m)}}let d=s=>(a.get(s)??[]).map(m=>({id:`op:${s}:${m.id}`,name:m.name,order:R(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),c=s=>({id:`tag:${s}`,name:t.get(s)??s,children:g(d(s)),metadata:{source:"tag-group",kind:"tag"}}),u=s=>{let p=[];for(let m of s.tags)a.get(m)?.length&&p.push(c(m));for(let m of s.groups??[])p.push(u(m));return{id:`tag-group:${s.name}`,name:s.name,order:s.order,children:g(p),metadata:{source:"tag-group",kind:"tag-group"}}};return g([...e.map(u),...i.map(z)])}function je(e,n,o){let r=new Map,t=[],a=new Map;for(let p=0;p<e.length;p+=1){let m=e[p];a.set(m.name,m.order??p)}for(let p of n)if(!G(p.raw,o.showInternal)){if(p.tags.length===0){t.push(p);continue}for(let m of p.tags){let f=r.get(m)??[];f.push(p),r.set(m,f)}}let i=new Map;for(let p of e)i.set(p.name,p.displayName);let d=(p,m)=>{let T=(r.get(p)??[]).map(l=>({id:`op:${p}:${l.id}`,name:l.name,order:R(l.raw),metadata:{method:l.method,path:l.path,operationId:l.operationId,deprecated:l.deprecated,summary:l.summary,pointer:l.pointer,source:"tag",kind:"operation"}}));return{id:`tag:${p}`,name:i.get(p)??p,order:a.get(p)??m,children:g(T),metadata:{source:"tag",kind:"tag"}}},c=[],u=new Set;e.forEach((p,m)=>{u.add(p.name),c.push(d(p.name,m))});let s=e.length;for(let p of r.keys())u.has(p)||(c.push(d(p,s)),s+=1);return g([...c,...t.map(z)])}function Le(e,n){if(!n.showComponents)return;let o=y(e.components),r=y(o?.schemas);if(!r)return;let t=[];for(let[a,i]of Object.entries(r)){let d=y(i);!d||G(d,n.showInternal)||t.push({id:`schema:${a}`,name:a,order:R(d),metadata:{pointer:`/components/schemas/${encodeURIComponent(a)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(t),metadata:{source:"section",kind:"section",section:"components"}}}function Ke(e,n){if(!n.showWebhooks)return;let o=y(e.webhooks);if(!o)return;let r=[];for(let[t,a]of Object.entries(o)){let i=y(a);if(i)for(let d of fe){let c=i[d],u=y(c);if(!u||G(u,n.showInternal))continue;let s=w(u.operationId),p=w(u.summary),m=p??s??`${d.toUpperCase()} ${t}`;r.push({id:`webhook:${t}:${d}`,name:m,order:R(u),metadata:{method:d,path:t,operationId:s,deprecated:j(u.deprecated)===!0,summary:p,pointer:`/webhooks/${encodeURIComponent(t)}/${d}`,source:"tag",kind:"webhook"}})}}if(r.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:g(r),metadata:{source:"section",kind:"section",section:"webhooks"}}}function ge(e,n={}){let o={...Ee,...n},r=[],t=y(e);if(!t)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let a=Pe(t),i=Je(t),d;if(Be(i))d=Fe(i,a,o,r);else{let m=_e(t);m.length>0?d=Ue(m,i,a,o):d=je(i,a,o)}let c=Ke(t,o),u=Le(t,o),p=[{id:"section:apis",name:"APIs",children:d,metadata:{kind:"section",source:"section",section:"apis"},order:0},...c?[c]:[],...u?[u]:[]];return{root:{id:"root",name:"OpenAPI",children:g(p),metadata:{kind:"root"}},warnings:r}}var le={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},V={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},he=new Set(["string","number","integer","boolean","null"]);function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Y(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Te(e){return typeof e=="boolean"?e:void 0}function Q(e){return Array.isArray(e)?e:void 0}function ve(e){let n=e.type;if(typeof n=="string"||Array.isArray(n)&&n.every(o=>typeof o=="string"))return n}function He(e){return e?Array.isArray(e)?e.every(n=>he.has(n)):he.has(e):!1}function We(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Ne(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function x(e){return e.map(n=>n.replace(/[\\.\[\]]/g,o=>`\\${o}`)).join(".")||"root"}function L(e,n,o,r,t,a){t.remaining--;let i=ve(n),d=Y(n.format),c=Y(n.description),u=Te(n.deprecated)===!0,s=We(i),p={jsonPath:o,type:i,format:d,required:a,deprecated:u,description:c,kind:s},m=Y(n.$ref);if(m){if(t.refStack.has(m))return t.warnings.push(`Circular $ref detected at ${o.join(".")}: ${m}. Breaking recursion.`),{id:x(o),name:e,metadata:{...p,kind:"ref",isLeaf:!0}};t.refStack.add(m)}let f,T=He(i),l=t.activeSchemas.has(n);if(l&&t.warnings.push(`Circular schema object detected at ${x(o)}.`),l||r>=t.options.maxDepth||t.remaining<=0)return m&&t.refStack.delete(m),{id:x(o),name:e,metadata:{...p,isLeaf:!0}};t.activeSchemas.add(n);let k=q(n.properties);if(k){let S=Q(n.required)??[],O=new Set(S.filter(b=>typeof b=="string")),B=[];for(let[b,I]of Object.entries(k)){if(t.remaining<=0)break;let $=q(I);$&&(!t.options.showDeprecated&&Te($.deprecated)===!0||B.push(L(b,$,[...o,"properties",b],r+1,t,O.has(b))))}f=[...f??[],...g(B)],T=!1}if(t.remaining>0&&t.options.showArrayItems&&i==="array"){let S=q(n.items);if(S){let O=L("items",S,[...o,"items"],r+1,t,!1);f=[...f??[],O],T=!1}else p.hasItems=!1}if(t.options.expandCombinators){let S=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:O,kind:B}of S){if(t.remaining<=0)break;let b=Q(n[O]);if(!b?.length)continue;t.remaining--;let I=[];for(let D=0;D<b.length&&t.remaining>0;D++){let Re=b[D],ne=q(Re);if(!ne){t.remaining--,I.push({id:x([...o,O,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...o,O,String(D)],kind:"unknown",isLeaf:!0}});continue}I.push(L(`[${D}]`,ne,[...o,O,String(D)],r+1,t,!1))}let $={id:x([...o,O]),name:O,children:g(I),metadata:{jsonPath:[...o,O],kind:B}};f=[...f??[],$],T=!1}}return Q(n.enum)?.length&&!f?.length&&(p.kind="enum",T=!0),m&&t.refStack.delete(m),t.activeSchemas.delete(n),{id:x(o),name:e,order:Object.prototype.hasOwnProperty.call(le,e)?le[e]:void 0,metadata:{...p,isLeaf:T},children:f}}function ye(e,n={}){let o={...V,...n};o.maxDepth=Number.isFinite(o.maxDepth)?Math.min(128,Math.max(0,Math.trunc(o.maxDepth))):V.maxDepth,o.maxNodes=Number.isFinite(o.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(o.maxNodes))):V.maxNodes;let r=[],t=q(e);if(!t)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let a={options:o,warnings:r,refStack:new Set,activeSchemas:new Set,remaining:o.maxNodes},i=L("root",t,[],0,a,!0);return a.remaining<=0&&r.push(`Schema node limit (${o.maxNodes}) reached; remaining branches were omitted.`),{root:i,warnings:r}}function Oe(e,n){if(n.length===0)return e;let o=JSON.stringify(n),r=[e],t=new Set;for(let a=0;a<r.length;a++){let i=r[a];if(!i||t.has(i))continue;if(t.add(i),JSON.stringify(i.metadata?.jsonPath)===o)return i;for(let c of i.children??[])r.push(c)}}function be(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Ne(e.type)} (${e.format})`:Ne(e.type)}var Xe=["get","put","post","delete","options","head","patch","trace"],ze={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function h(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function N(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function P(e){return typeof e=="boolean"?e:void 0}function Z(e){return Array.isArray(e)?e:void 0}function K(e,n){return n?!1:P(e["x-scalar-ignore"])===!0||P(e["x-internal"])===!0}function ee(e){let n=e["x-order"];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Ve(e){return N(e["x-displayName"])}function Ye(e,n){let o=[];for(let r of e){let t=h(r);if(!t)continue;let a=N(t.name),i=N(t.in);if(!a||!i)continue;let d=`${i}:${a}`;o.push({id:`${n}/parameters/${encodeURIComponent(d)}`,name:a,metadata:{paramIn:i,required:P(t.required)===!0,description:N(t.description),pointer:`${n}/parameters`,kind:"parameter"}})}return g(o)}function Qe(e,n){let o=[];for(let[r,t]of Object.entries(e)){let a=h(t);if(!a)continue;let i=N(a.description),d=h(a.content),c=[];if(d)for(let[u]of Object.entries(d))c.push({id:`${n}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,name:u,metadata:{contentType:u,pointer:`${n}/responses/${encodeURIComponent(r)}/content/${encodeURIComponent(u)}`,kind:"content"}});o.push({id:`${n}/responses/${encodeURIComponent(r)}`,name:r,metadata:{statusCode:r,description:i,pointer:`${n}/responses/${encodeURIComponent(r)}`,kind:"response"},children:c.length>0?c:void 0})}return g(o)}function Ze(e,n){let o=[],r=Z(e.parameters);if(r?.length){let i=Ye(r,n);i.length>0&&o.push({id:`${n}/parameters`,name:"Parameters",children:i,metadata:{pointer:`${n}/parameters`,kind:"parameters"}})}let t=h(e.requestBody);if(t){let i=h(t.content),d=[];if(i)for(let[c]of Object.entries(i))d.push({id:`${n}/requestBody/content/${encodeURIComponent(c)}`,name:c,metadata:{contentType:c,pointer:`${n}/requestBody/content/${encodeURIComponent(c)}`,kind:"content"}});o.push({id:`${n}/requestBody`,name:"Request Body",metadata:{description:N(t.description),required:P(t.required)===!0,pointer:`${n}/requestBody`,kind:"request-body"},children:d.length>0?d:void 0})}let a=h(e.responses);if(a){let i=Qe(a,n);i.length>0&&o.push({id:`${n}/responses`,name:"Responses",children:i,metadata:{pointer:`${n}/responses`,kind:"responses"}})}return o}function en(e){let n=h(e.paths);if(!n)return[];let o=[];for(let[r,t]of Object.entries(n)){let a=h(t);if(a)for(let i of Xe){let d=a[i],c=h(d);if(!c)continue;let u=N(c.operationId),s=N(c.summary),p=N(c.description),m=Z(c.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],f=s??u??`${i.toUpperCase()} ${r}`,T=u??`${i}:${r}`,l=`/paths/${encodeURIComponent(r)}/${i}`;o.push({id:T,path:r,method:i,name:f,summary:s,description:p,operationId:u,deprecated:P(c.deprecated)===!0,tags:m,pointer:l,raw:c})}}return o}function nn(e){let n=Z(e.tags);if(!n)return[];let o=[];for(let r of n){let t=h(r),a=N(t?.name);!a||!t||o.push({name:a,displayName:Ve(t)??a,description:N(t.description),parent:N(t.parent),order:ee(t)})}return o}function tn(e){return e.some(n=>n.parent!==void 0)}function J(e,n,o,r){let t=n.expandOperationDetails?Ze(e.raw,e.pointer):void 0;return{id:`op:${r}:${e.id}`,name:e.name,order:ee(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:o,kind:"operation"},children:t&&t.length>0?t:void 0}}function rn(e,n,o,r){let t=new Map;for(let s of n){if(K(s.raw,o.showInternal))continue;let p=s.tags.length>0?s.tags:["Other"];for(let m of p){let f=t.get(m)??[];f.push(s),t.set(m,f)}}let a=s=>{let m=(t.get(s.name)??[]).map(f=>J(f,o,"oas32-parent",s.name));return{id:`tag:${s.name}`,name:s.displayName,order:s.order,children:g(m),metadata:{description:s.description,source:"oas32-parent",kind:"tag"}}},i=new Set(e.map(s=>s.name)),d=[...e];for(let s of t.keys())s!=="Other"&&!i.has(s)&&d.push({name:s,displayName:s});let c=U(d,a,r),u=t.get("Other")??[];if(u.length>0&&!e.some(s=>s.name==="Other")){let s=u.map(p=>J(p,o,"fallback","Other"));c.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(s),metadata:{source:"fallback",kind:"tag"}})}return g(c)}function on(e,n,o){let r=new Map,t=new Map;for(let d=0;d<e.length;d+=1)t.set(e[d].name,d);for(let d of n){if(K(d.raw,o.showInternal))continue;let c=d.tags.length>0?d.tags:["Other"];for(let u of c){let s=r.get(u)??[];s.push(d),r.set(u,s)}}let a=new Map;for(let d of e)a.set(d.name,d.displayName);let i=[];for(let[d,c]of r){let u=c.map(s=>J(s,o,"tag",d));i.push({id:`tag:${d}`,name:a.get(d)??d,order:d==="Other"?Number.MAX_SAFE_INTEGER:t.get(d),children:g(u),metadata:{source:"tag",kind:"tag"}})}return g(i)}function sn(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function we(e,n,o=0,r={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(o>=128||r.active.has(e))return n.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];r.active.add(e);let t=[];for(let a of e){if(r.remaining<=0){r.warned||n.push("Tag group limit (10,000) reached; remaining groups were omitted."),r.warned=!0;break}let i=h(a);if(!i||typeof i.name!="string")continue;r.remaining--;let d={name:i.name};Array.isArray(i.tags)&&(d.tags=i.tags.filter(c=>typeof c=="string")),Array.isArray(i.groups)&&(d.groups=we(i.groups,n,o+1,r)),t.push(d)}return r.active.delete(e),t}function ke(e,n,o,r,t,a=0){let i=[];if(e.tags)for(let d of e.tags){let c=n.get(d);if(!c||c.length===0)continue;let u=c.map(s=>J(s,t,"tag-group",d));i.push({id:`tag:${d}`,name:o.get(d)??d,order:r.get(d),children:g(u),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let d of e.groups)i.push(ke(d,n,o,r,t,a+1));return{id:`tag-group:${e.name}`,name:e.name,order:a*1e3,children:g(i),metadata:{source:"tag-group",kind:"tag-group"}}}function an(e,n,o,r,t){let a=new Map,i=new Map,d=new Map;for(let p=0;p<n.length;p+=1)i.set(n[p].name,p),d.set(n[p].name,n[p].displayName);for(let p of o){if(K(p.raw,r.showInternal))continue;let m=p.tags.length>0?p.tags:["Other"];for(let f of m){let T=a.get(f)??[];T.push(p),a.set(f,T)}}let u=we(e["x-tagGroups"],t).map(p=>ke(p,a,d,i,r)),s=a.get("Other");if(s&&s.length>0){let p=s.map(m=>J(m,r,"fallback","Other"));u.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:g(p),metadata:{source:"fallback",kind:"tag"}})}return g(u)}function dn(e,n){if(!n.showComponents)return;let o=h(e.components),r=h(o?.schemas);if(!r)return;let t=[];for(let[a,i]of Object.entries(r)){let d=h(i);!d||K(d,n.showInternal)||t.push({id:`schema:${a}`,name:a,order:ee(d),metadata:{description:N(d.description),pointer:`/components/schemas/${encodeURIComponent(a)}`,source:"tag",kind:"schema"}})}if(t.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:g(t),metadata:{source:"tag",kind:"component"}}}function cn(e){let n=new Map,o=_(e);for(let r=o.length-1;r>=0;r--){let t=o[r].node,a=t.children?.map(d=>n.get(d)).filter(Boolean),i=(t.metadata?.kind==="operation"?1:0)+(a?.reduce((d,c)=>d+(c.metadata?.operationCount??0),0)??0);n.set(t,{...t,children:a,metadata:{...t.metadata,operationCount:i}})}return e.map(r=>n.get(r))}function De(e,n={}){let o={...ze,...n},r=[],t=h(e);if(!t)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let a=en(t),i=nn(t),d;tn(i)?d=rn(i,a,o,r):sn(t)?d=an(t,i,a,o,r):d=on(i,a,o);let c=dn(t,o),u=cn([...d,...c?[c]:[]]);return{root:{id:"root",name:"API Documentation",children:g(u),metadata:{kind:"root"}},warnings:r}}0&&(module.exports={buildDocTree,buildOpenApiTree,buildSchemaTree,countNodes,filterTree,findNode,findPath,findSchemaNodeByPath,flattenTree,formatSchemaType,getBranchIds,getExpandableIds,getLeaves,getMaxDepth,insertChild,isTreeNode,moveNode,removeNode,reorderNode,sortNodes,sortTree,updateNode});
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l,b as n,c as q,d as s,e as u}from"./chunk-
|
|
1
|
+
import{a as l,b as n,c as q,d as s,e as u}from"./chunk-FUR7BOZE.js";import"./chunk-NHPRTISE.js";import{a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i,p as j,q as k}from"./chunk-AHHDXXHL.js";export{u as buildDocTree,l as buildOpenApiTree,n as buildSchemaTree,m as countNodes,a as filterTree,r as findNode,e as findPath,q as findSchemaNodeByPath,d as flattenTree,s as formatSchemaType,c as getBranchIds,b as getExpandableIds,f as getLeaves,p as getMaxDepth,i as insertChild,o as isTreeNode,k as moveNode,h as removeNode,j as reorderNode,t as sortNodes,x as sortTree,g as updateNode};
|
package/dist/react/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Fe=Object.defineProperty;var yt=Object.getOwnPropertyDescriptor;var It=Object.getOwnPropertyNames;var Nt=Object.prototype.hasOwnProperty;var Mt=(t,e)=>{for(var a in e)Fe(t,a,{get:e[a],enumerable:!0})},St=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of It(e))!Nt.call(t,n)&&n!==a&&Fe(t,n,{get:()=>e[n],enumerable:!(o=yt(e,n))||o.enumerable});return t};var kt=t=>St(Fe({},"__esModule",{value:!0}),t);var qt={};Mt(qt,{METHOD_LABEL_MAP:()=>Be,Tree:()=>it,getMethodLabel:()=>ke,useTreeExpansion:()=>Pe,useTreeSearch:()=>Oe});module.exports=kt(qt);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 $e(t,e){for(let{node:a}of je(t))if(a.id===e)return a}function Dt(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(v=>v.id)}}return null}var $t=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function We(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 v=i.source.length===i.output.length&&i.source.every((c,x)=>c===i.output[x])?i.source:i.output;if(!i.owner)return v;let f=i.owner,I=e(v===f.children?f:{...f,children:v});o.delete(f),n.set(f,I),I&&l[l.length-1].output.push(I)}return t}function Ye(t,e){let a=e.query.trim().toLowerCase();return a?We(t,o=>o.name.toLowerCase().includes(a)||o.id.toLowerCase().includes(a)||(e.keepAncestors??!0)&&o.children?.length?o:null):t}function Le(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 Le(t)}function Ze(t,e,a){return We(t,o=>o.id===e?a(o):o,o=>o.id!==e)}function Ct(t,e){return We(t,a=>a.id===e?null:a,a=>a.id!==e)}function et(t,e){return Math.max(0,Math.min(Number.isNaN(t)?0:Math.trunc(t),e))}function tt(t,e,a){let o=Dt(t,e);if(!o)return null;let n=o.parent?.children??t,l=n.indexOf(o.target),i=et(a,n.length-1),v={nodes:t,moved:o.target,parentId:o.parent?.id??null,fromIndex:l,toIndex:i};if(i===l)return v;let f=[...n];return f.splice(l,1),f.splice(i,0,o.target),{...v,nodes:o.parent?Ze(t,o.parent.id,I=>({...I,children:f})):f}}function Qe(t,e,a,o){let n=$e(t,e);if(!n||a!==null&&(!$e(t,a)||$e([n],a)))return null;let l=Ct(t,e),i=v=>{let f=[...v];return f.splice(et(o??f.length,f.length),0,n),f};return a===null?i(l):Ze(l,a,v=>({...v,children:i(v.children??[])}))}var ie=require("react"),rt=require("react-dom"),de=require("react/jsx-runtime");function ot({state:t,onClose:e}){let a=(0,ie.useRef)(null),[o,n]=(0,ie.useState)(null),[l,i]=(0,ie.useState)({left:t.x,top:t.y}),[v,f]=(0,ie.useState)({}),I=t.anchor.closest("dialog")??t.anchor.ownerDocument.body;return(0,ie.useLayoutEffect)(()=>{let c=t.anchor.closest(".pde-tree-root")??t.anchor,x=getComputedStyle(c),M={};for(let k=0;k<x.length;k++){let G=x.item(k);(G.startsWith("--tree-")||G.startsWith("--color-")||G.startsWith("--radius-")||G.startsWith("--font-")||G.startsWith("--shadow-"))&&(M[G]=x.getPropertyValue(G))}f(M);let b=a.current;if(!b)return;let P=()=>{let k=b.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))})};P();let Y=typeof ResizeObserver>"u"?void 0:new ResizeObserver(P);Y?.observe(b),b.querySelector("button:not(:disabled)")?.focus();let te=k=>{k.target instanceof Node&&!b.contains(k.target)&&e()},re=k=>{k.target instanceof Node&&!b.contains(k.target)&&e()};return document.addEventListener("pointerdown",te),document.addEventListener("scroll",re,!0),window.addEventListener("resize",e),()=>{Y?.disconnect(),document.removeEventListener("pointerdown",te),document.removeEventListener("scroll",re,!0),window.removeEventListener("resize",e),b.contains(document.activeElement)&&t.anchor.isConnected&&t.anchor.focus({preventScroll:!0})}},[t,e]),(0,rt.createPortal)((0,de.jsx)("div",{ref:a,className:"pde-tree-contextMenu",style:{...v,...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)")),b=M.indexOf(document.activeElement);if(c.key==="Escape"||c.key==="Tab"){c.key==="Escape"&&c.preventDefault(),c.stopPropagation(),e();return}let P;if(c.key==="ArrowDown")P=(b+1)%M.length;else if(c.key==="ArrowUp")P=(b-1+M.length)%M.length;else if(c.key==="Home")P=0;else if(c.key==="End")P=M.length-1;else return;c.preventDefault(),M[P]?.focus()},children:t.items.map((c,x)=>(0,de.jsxs)("div",{role:"presentation",children:[c.separator&&(0,de.jsx)("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),(0,de.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,de.jsx)("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:c.icon}),(0,de.jsx)("span",{children:c.confirm&&o===x?c.confirmLabel??"Confirm?":c.label})]})]},`${c.label}-${x}`))}),I)}var E=require("react");function Pe(t,e={}){let{defaultExpandedIds:a,defaultExpandDepth:o=1,onExpandedChange:n}=e,l=(0,E.useMemo)(()=>a!==void 0?[...a]:o<=1?[]:Le(t,{maxDepth:o-1,onlyWithChildren:!0}),[]),[i,v]=(0,E.useState)(l),f=(0,E.useRef)(new Map),I=(0,E.useMemo)(()=>Xe(t),[t]),c=(0,E.useMemo)(()=>new Set(i),[i]),x=(0,E.useRef)(i);x.current=i;let M=(0,E.useMemo)(()=>I.length>0&&I.every(S=>c.has(S)),[I,c]),b=(0,E.useCallback)(S=>{x.current=S,v(S),n?.(S)},[n]),P=(0,E.useCallback)(S=>{let D=x.current,se=D.includes(S)?D.filter(xe=>xe!==S):[...D,S];b(se)},[b]),Y=(0,E.useCallback)(()=>{b([...I])},[I,b]),te=(0,E.useCallback)(()=>{b([])},[b]),re=(0,E.useCallback)(S=>{let D=Le(t,{maxDepth:S,onlyWithChildren:!0});b(D)},[t,b]),k=(0,E.useCallback)((S,D)=>{D?f.current.set(S,D):f.current.delete(S)},[]),G=(0,E.useCallback)(S=>{let D=f.current.get(S);D&&D.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:i,setExpandedIds:b,toggleNode:P,expandAll:Y,collapseAll:te,expandToDepth:re,isAllExpanded:M,allBranchIds:I,setNodeElementRef:k,scrollToNode:G,nodeElementRefs:f}}var J=require("react");function Oe(t){let[e,a]=(0,J.useState)(""),o=(0,J.useDeferredValue)(e),[n,l]=(0,J.useState)(null),i=o.trim().length>0,v=(0,J.useMemo)(()=>i?Ye(t,{query:o,keepAncestors:!0}):t,[t,o,i]),f=(0,J.useCallback)((c,x)=>{let M=e.trim(),b=c.trim();!M&&b&&l(x),M&&!b&&l(null),a(c)},[e]),I=(0,J.useCallback)(()=>{a(""),l(null)},[]);return{query:e,deferredQuery:o,isSearching:i,filteredNodes:v,expandedBeforeSearch:n,handleQueryChange:f,clearSearch:I}}function nt(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],v=l.parentId;for(;v!==null;){let f=e.get(v);if(!f)break;i.push(f.node),v=f.parentId}return i.reverse(),{nodes:i,target:l.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(f=>f.id)}}}}var Be={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function ke(t){let e=t.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Be,e)?Be[e]:e.slice(0,4).toUpperCase()}var N=require("react-icons/lu"),ze=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 Rt({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 Et(){return(0,s.jsx)(N.LuSearch,{size:14,"aria-hidden":"true"})}function Lt(){return(0,s.jsx)(N.LuGripVertical,{size:14,"aria-hidden":"true"})}function Pt(){return(0,s.jsx)(N.LuEllipsisVertical,{size:14,"aria-hidden":"true"})}function at(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 Ot(t,e,a,o){let n=at(t);if(!n||n.length===0)return[];let l=JSON.stringify(n.slice(0,-1));if(!o.every((v,f)=>{let I=at(v);return I&&I[I.length-1]===f&&JSON.stringify(I.slice(0,-1))===l}))return[];let i=n.slice(0,-1);return[{op:"move",from:[...i,e],path:[...i,a]}]}function Bt({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 dt={get:g.methodGet,post:g.methodPost,put:g.methodPut,patch:g.methodPatch,delete:g.methodDelete};function zt({method:t}){let e=t.toLowerCase(),a=Object.prototype.hasOwnProperty.call(dt,e)?dt[e]:g.methodOther,o=ke(t);return(0,s.jsx)("span",{className:`${g.methodBadge} ${a}`,children:o})}var U={draggedId:null,dragOverId:null,dragOverPosition:null};function At(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 Ht(t){let{node:e,depth:a,onToggle:o,onSelect:n,onNodeRef:l,searchQuery:i,showIndentGuides:v,renderIcon:f,renderLabel:I,renderSuffix:c,renderNode:x,draggable:M,dragState:b,canDragNode:P,onDragStart:Y,onDragOver:te,onDragLeave:re,onDrop:k,onDragEnd:G,showContextMenuButton:S,activeMenuNodeId:D,onContextMenu:se,onMoreClick:xe}=t,{isExpanded:j,isSelected:be}=t,fe=(e.children?.length??0)>0,O=fe,De=!fe,ce=b.draggedId===e.id,X=b.dragOverId===e.id,K=X?b.dragOverPosition:null,q=e.metadata,Z=typeof q?.method=="string"?q.method:void 0,ve=q?.deprecated===!0,Ae=q?.required===!0,F=typeof q?.kind=="string"?q.kind:void 0,ee={node:e,depth:a,isExpanded:j,isSelected:be,isBranch:O,isLeaf:De,isDragging:ce,isDragOver:X,dragOverPosition:K},he=(0,p.useCallback)(()=>{O?o(e.id):n(e)},[O,e,n,o]),W=(0,p.useCallback)(T=>{T.target===T.currentTarget&&(T.key==="Enter"||T.key===" "?(T.preventDefault(),he()):(T.key==="ArrowRight"&&O&&!j||T.key==="ArrowLeft"&&O&&j)&&(T.preventDefault(),T.stopPropagation(),o(e.id)))},[he,O,j,e.id,o]),B=f?f(ee):Z?null:(0,s.jsx)("span",{className:g.nodeIcon,children:F==="section"&&q?.section==="components"?(0,s.jsx)(N.LuBraces,{size:14}):F==="section"&&q?.section==="webhooks"?(0,s.jsx)(N.LuZap,{size:14}):F==="schema"||F==="component"||F==="object"?(0,s.jsx)(N.LuBraces,{size:14}):F==="array"||F==="items"?(0,s.jsx)(N.LuList,{size:14}):O?j?(0,s.jsx)(N.LuFolderOpen,{size:14}):(0,s.jsx)(N.LuFolder,{size:14}):Z&&(0,s.jsx)(zt,{method:Z})}),ge=I?I(ee):(0,s.jsx)("span",{className:`${g.nodeLabel} ${O?g.nodeLabelBranch:""} ${ve?g.deprecatedLabel:""}`,children:(0,s.jsx)(Bt,{text:e.name,query:i})}),Ce=c?c(ee):null,le=[g.nodeRow,O?g.branchControl:g.leafItem,be?g.nodeRowSelected:"",ce?g.nodeDragging:"",X&&K==="before"?g.dropIndicatorBefore:"",X&&K==="after"?g.dropIndicatorAfter:"",X&&K==="child"?g.dropIndicatorChild:"",F?`pde-tree-kind-${F}`:""].filter(Boolean).join(" "),Re=(0,p.useCallback)(T=>l(e.id,T),[e.id,l]),C=(0,s.jsxs)("div",{ref:Re,className:le,style:{paddingLeft:`${Math.min(a,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":O?j:void 0,"aria-label":Z?`${ke(Z)} ${e.name}`:e.name,"aria-selected":be,"aria-level":a+1,"aria-posinset":t.positionInSet,"aria-setsize":t.setSize,"aria-grabbed":M&&P?ce:void 0,tabIndex:t.isFocused?0:-1,onFocus:()=>t.onFocusNode(e.id),onClick:he,onKeyDown:W,onContextMenu:S?T=>se(e,T):void 0,onDragOver:M?T=>te(e,T):void 0,onDragLeave:M?()=>re(e):void 0,onDrop:M?T=>k(e,T):void 0,children:[v&&a>1&&Array.from({length:Math.min(a-1,20)},(T,oe)=>(0,s.jsx)("span",{className:g.indentGuide,style:{left:`${(oe+1)*12+11}px`}},`guide-${oe}`)),M&&P?(0,s.jsx)("span",{className:g.dragHandle,style:{left:`${Math.min(a,20)*12+4}px`},draggable:!0,onDragStart:T=>Y(e,T),onDragEnd:G,title:"Drag to reorder","aria-label":"Drag to reorder",children:(0,s.jsx)(Lt,{})}):null,O?(0,s.jsx)(Rt,{expanded:j}):(0,s.jsx)("span",{className:g.expandIconPlaceholder}),B,ge,Ae&&(0,s.jsx)("span",{className:g.requiredDot,title:"Required"}),(0,s.jsx)("span",{className:g.nodeSuffix,children:Ce}),S&&(0,s.jsx)("button",{type:"button",className:[g.moreButton,D===e.id?g.moreButtonActive:""].filter(Boolean).join(" "),onClick:T=>xe(e,T),title:"More actions","aria-label":`More actions for ${e.name}`,"aria-haspopup":"menu","aria-expanded":D===e.id,tabIndex:-1,children:(0,s.jsx)(Pt,{})})]}),Ee=x?x(ee,C):C;return(0,s.jsx)(s.Fragment,{children:Ee})}var Gt=(0,p.memo)(Ht,At),it=(0,p.forwardRef)(function(e,a){let{nodes:o,onSelect:n,onExpandedChange:l,defaultExpandedIds:i,defaultExpandDepth:v=1,searchable:f=!1,searchPlaceholder:I="Search...",showExpandAll:c=!1,showRefresh:x=!1,onRefresh:M,toolbar:b,searchRowExtra:P,renderNode:Y,renderIcon:te,renderLabel:re,renderSuffix:k,className:G,style:S,size:D="sm",variant:se="default",showIndentGuides:xe=!0,maxHeight:j,rootRef:be,draggable:fe=!1,dragGroupKey:O,onReorder:De,onMove:ce,canDrag:X,canDrop:K,contextMenuItems:q,onContextMenuOpen:Z,onPatch:ve,theme:Ae,virtualized:F="auto"}=e,[ee,he]=(0,p.useState)(null),[W,B]=(0,p.useState)(U),[ge,Ce]=(0,p.useState)(null),le=(0,p.useRef)(null),Re=(0,p.useId)(),C=(0,p.useMemo)(()=>nt(o),[o]),[Ee,T]=(0,p.useState)({top:0,height:400}),[oe,Te]=(0,p.useState)(null),[He,_e]=(0,p.useState)(null),y=Pe(o,{defaultExpandedIds:i,defaultExpandDepth:v,onExpandedChange:l}),L=Oe(o),Ke=L.isSearching?y.allBranchIds:L.expandedBeforeSearch??y.expandedIds,we=(0,p.useMemo)(()=>new Set(Ke),[Ke]),R=(0,p.useMemo)(()=>{let r=[],d=new Set,u=L.filteredNodes.map((h,m,w)=>({node:h,depth:0,parentId:null,positionInSet:m+1,setSize:w.length})).reverse();for(;u.length;){let h=u.pop();if(!d.has(h.node.id)&&(d.add(h.node.id),r.push(h),we.has(h.node.id))){let m=h.node.children??[];for(let w=m.length-1;w>=0;w--)u.push({node:m[w],depth:h.depth+1,parentId:h.node.id,positionInSet:w+1,setSize:m.length})}}return r},[L.filteredNodes,we]),ye=(0,p.useMemo)(()=>new Map(R.map((r,d)=>[r.node.id,d])),[R]),pe=D==="xs"?24:D==="md"?32:28,ne=F!==!1&&se!=="doc"&&!Y&&(F===!0||R.length>500),me=ne?Math.max(0,Math.min(Math.floor(Ee.top/pe)-8,R.length-1)):0,Ie=ne?Math.min(R.length,me+Math.ceil(Ee.height/pe)+16):R.length,Ve=R.slice(me,Ie);(0,p.useEffect)(()=>{let r=le.current;if(!r)return;let d=()=>T({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(!oe)return;let r=ye.get(oe.id);if(r===void 0){Te(null);return}let d=le.current;if(ne&&d&&(r<me||r>=Ie)){let h=d.clientHeight||400,m=Math.min(r*pe,Math.max(0,R.length*pe-h));d.scrollTop=m,T(w=>({...w,top:d.scrollTop}));return}let u=y.nodeElementRefs.current.get(oe.id);oe.focus&&u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"nearest"}),Te(null)},[oe,ye,ne,pe,me,Ie,R.length,y.nodeElementRefs]);let Ge=He===null?void 0:ye.get(He),st=Ge!==void 0&&Ge>=me&&Ge<Ie?He:Ve[0]?.node.id,qe=(0,p.useRef)({query:"",time:0}),ct=r=>{if(!(r.target instanceof HTMLElement)||r.target.getAttribute("role")!=="treeitem")return;let d=ye.get(r.target.dataset.nodeId??"");if(d===void 0)return;let u=R[d],h=d;if(r.key==="ArrowDown")h=Math.min(d+1,R.length-1);else if(r.key==="ArrowUp")h=Math.max(0,d-1);else if(r.key==="Home")h=0;else if(r.key==="End")h=R.length-1;else if(r.key==="ArrowRight"&&u.node.children?.length&&we.has(u.node.id))h=Math.min(d+1,R.length-1);else if(r.key==="ArrowLeft"&&(!u.node.children?.length||!we.has(u.node.id)))h=ye.get(u.parentId??"")??d;else if(r.key==="ContextMenu"||r.shiftKey&&r.key==="F10"){let w=r.target.getBoundingClientRect();r.preventDefault(),Se(u.node,w.left+24,w.bottom);return}else if(r.key.length===1&&r.key!==" "&&!r.ctrlKey&&!r.metaKey&&!r.altKey){let w=Date.now(),Q=w-qe.current.time<600?qe.current.query+r.key.toLowerCase():r.key.toLowerCase();qe.current={query:Q,time:w};for(let z=1;z<=R.length;z++){let A=(d+z)%R.length;if(R[A].node.name.toLowerCase().startsWith(Q)){h=A;break}}}else return;r.preventDefault();let m=R[h].node.id;_e(m),Te({id:m,focus:!0})};(0,p.useEffect)(()=>{le.current&&(le.current.scrollTop=0),T(r=>({...r,top:0}))},[L.deferredQuery]);let lt=(0,p.useCallback)(r=>{he(r.id),n?.(r)},[n]),pt=(0,p.useCallback)(r=>{!r.trim()&&L.expandedBeforeSearch&&y.setExpandedIds(L.expandedBeforeSearch),L.handleQueryChange(r,y.expandedIds)},[y.expandedIds,L]),Ne=(0,p.useCallback)(r=>!fe||r.metadata?.kind==="section"?!1:X?X(r):!0,[X,fe]),Me=(0,p.useCallback)((r,d,u)=>{if(r.id===d.id||!Ne(r)||C.path(d.id)?.ancestorIds.includes(r.id))return!1;if(O){let m=z=>{let A=C.path(z)?.nodes??[];for(let V=A.length-1;V>=0;V--){let $=A[V]?.metadata;if($&&typeof $=="object"&&Object.prototype.hasOwnProperty.call($,O))return $[O]}},w=m(r.id),Q=m(d.id);if(w!==void 0&&Q!==void 0&&w!==Q)return!1}return!K||K(r,d,u)},[Ne,K,O,C]),ut=(0,p.useCallback)((r,d)=>{if(!Ne(r)){d.preventDefault();return}d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",r.id),B({draggedId:r.id,dragOverId:null,dragOverPosition:null})},[Ne]),ft=(0,p.useCallback)((r,d)=>{if(!W.draggedId||W.draggedId===r.id)return;d.dataTransfer.dropEffect="none";let u=C.byId.get(W.draggedId)?.node;if(!u){B(H=>H.dragOverId===null?H:{...H,dragOverId:null,dragOverPosition:null});return}let h=d.currentTarget.getBoundingClientRect(),m=(d.clientY-h.top)/h.height,w=(r.children?.length??0)>0,Q=m<.5?"before":"after",z,A;m<.25?(z=["before","after"],A=1):m>.75?(z=["after","before"],A=1):(z=[Q],A=0);let V=K?Me(u,r,"child"):!1;(w||V)&&z.splice(A,0,"child");let $=z.find(H=>Me(u,r,H));if(!$){B(H=>H.dragOverId===null?H:{...H,dragOverId:null,dragOverPosition:null});return}d.preventDefault(),d.dataTransfer.dropEffect="move",B(H=>H.dragOverId===r.id&&H.dragOverPosition===$?H:{...H,dragOverId:r.id,dragOverPosition:$})},[Me,K,W.draggedId,C]),ht=(0,p.useCallback)(r=>{B(d=>d.dragOverId!==r.id?d:{...d,dragOverId:null,dragOverPosition:null})},[]),gt=(0,p.useCallback)((r,d)=>{d.preventDefault();let u=W.draggedId,h=W.dragOverPosition;if(!u||!h||u===r.id||W.dragOverId!==r.id){B(U);return}let m=C.byId.get(u)?.node;if(!m||!Me(m,r,h)){B(U);return}if(h==="child"){let ue=C.path(u)?.target;if(!ue){B(U);return}let Ue=Qe(o,u,r.id);Ue&&ce?.(Ue,ue,r.id),B(U);return}let w=C.path(r.id);if(!w){B(U);return}let Q=w.parent?.children??o,z=Q.findIndex(_=>_.id===r.id);if(z===-1){B(U);return}let A=h==="before"?z:z+1,V=C.path(u),$=w.parent?.id??null;if((V?.parent?.id??null)!==$){let _=V?.target,ue=Qe(o,u,$,A);ue&&_&&ce?.(ue,_,$),B(U);return}if(V&&V.parent===w.parent){let _=Q.findIndex(ue=>ue.id===u);_!==-1&&_<A&&(A-=1)}let ae=tt(o,u,A);if(ae&&ae.fromIndex!==ae.toIndex&&(De?.(ae),ve)){let _=Ot(ae.moved,ae.fromIndex,ae.toIndex,Q);_.length>0&&ve(_,{node:ae.moved,type:"reorder"})}B(U)},[W,o,C,Me,ce,ve,De]),mt=(0,p.useCallback)(()=>{B(U)},[]),Se=(0,p.useCallback)((r,d,u)=>{if(q){let h=q(r);if(h.length===0)return;let m=y.nodeElementRefs.current.get(r.id);m&&Ce({x:d,y:u,node:r,items:h,anchor:m});return}Z?.({node:r,x:d,y:u})},[q,Z,y.nodeElementRefs]),xt=(0,p.useCallback)(()=>{Ce(null)},[]),bt=(0,p.useCallback)((r,d)=>{d.preventDefault(),Se(r,d.clientX,d.clientY)},[Se]),vt=(0,p.useCallback)((r,d)=>{d.stopPropagation();let u=d.currentTarget.getBoundingClientRect();Se(r,u.left,u.bottom+4)},[Se]),Je=(0,p.useCallback)(r=>{let d=C.path(r);if(!d)return;let u=d.ancestorIds;y.setExpandedIds([...new Set([...y.expandedIds,...u])]),L.clearSearch(),Te({id:r,focus:!1})},[y,C,L.clearSearch]);(0,p.useImperativeHandle)(a,()=>({expandAll:y.expandAll,collapseAll:y.collapseAll,expandToDepth:y.expandToDepth,getExpandedIds:()=>y.expandedIds,getSelectedNode:()=>ee?C.path(ee)?.target:void 0,scrollToNode:Je,locateNode:r=>{let d=[...o],u=new Set;for(let h=0;h<d.length;h++){let m=d[h];if(!(!m||u.has(m))){if(u.add(m),r(m)){let w=C.path(m.id);return w&&y.setExpandedIds([...new Set([...y.expandedIds,...w.ancestorIds])]),L.clearSearch(),he(m.id),Te({id:m.id,focus:!1}),m}if(m.children?.length)for(let w of m.children)d.push(w)}}}}),[y,Je,ee,o,C,L.clearSearch]);let Tt=(0,p.useMemo)(()=>({...S,...j!==void 0?{maxHeight:j}:{}}),[S,j]),wt=[g.root,se!=="default"?`pde-tree-variant-${se}`:"",G].filter(Boolean).join(" ");return(0,s.jsxs)("div",{ref:be,className:wt,style:Tt,"data-size":D,"data-theme":Ae,children:[b&&(0,s.jsx)("div",{className:g.toolbar,children:b}),(f||c||x||P)&&(0,s.jsxs)("div",{className:g.searchRow,children:[f&&(0,s.jsxs)("div",{className:g.searchInputWrap,children:[(0,s.jsx)("span",{className:g.searchIcon,children:(0,s.jsx)(Et,{})}),(0,s.jsx)("input",{className:g.searchInput,type:"search","aria-controls":Re,placeholder:I,value:L.query,onChange:r=>pt(r.target.value),"aria-label":"Search tree"})]}),P,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)(ze.MdUnfoldLess,{size:16,"aria-hidden":"true"}):(0,s.jsx)(ze.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:le,className:g.treeContainer,"data-virtualized":ne||void 0,onScroll:r=>{ne&&T({top:r.currentTarget.scrollTop,height:r.currentTarget.clientHeight||400})},id:Re,role:"tree",onKeyDown:ct,"aria-label":"Tree navigation",children:L.filteredNodes.length===0?(0,s.jsx)("div",{className:g.emptyState,children:L.isSearching?"No matching results":"No items"}):(0,s.jsxs)(s.Fragment,{children:[ne&&(0,s.jsx)("div",{role:"presentation",style:{height:me*pe}}),Ve.map(({node:r,depth:d,positionInSet:u,setSize:h})=>(0,s.jsx)(Gt,{node:r,depth:d,positionInSet:u,setSize:h,isFocused:r.id===st,onFocusNode:_e,isExpanded:we.has(r.id),isSelected:ee===r.id,onToggle:y.toggleNode,onSelect:lt,onNodeRef:y.setNodeElementRef,searchQuery:L.deferredQuery,showIndentGuides:xe,renderIcon:te,renderLabel:re,renderSuffix:k,renderNode:Y,draggable:fe,dragState:W,canDragNode:Ne(r),onDragStart:ut,onDragOver:ft,onDragLeave:ht,onDrop:gt,onDragEnd:mt,showContextMenuButton:!!(q||Z),activeMenuNodeId:ge?.node.id??null,onContextMenu:bt,onMoreClick:vt},r.id)),ne&&(0,s.jsx)("div",{role:"presentation",style:{height:(R.length-Ie)*pe}})]})}),ge&&(0,s.jsx)(ot,{state:ge,onClose:xt},ge.node.id)]})});0&&(module.exports={METHOD_LABEL_MAP,Tree,getMethodLabel,useTreeExpansion,useTreeSearch});
|
|
1
|
+
"use strict";var We=Object.defineProperty;var St=Object.getOwnPropertyDescriptor;var Rt=Object.getOwnPropertyNames;var kt=Object.prototype.hasOwnProperty;var Dt=(t,e)=>{for(var a in e)We(t,a,{get:e[a],enumerable:!0})},Et=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Rt(e))!kt.call(t,n)&&n!==a&&We(t,n,{get:()=>e[n],enumerable:!(o=St(e,n))||o.enumerable});return t};var Ct=t=>Et(We({},"__esModule",{value:!0}),t);var $t={};Dt($t,{DEFAULT_TREE_LABELS:()=>He,METHOD_LABEL_MAP:()=>Fe,Tree:()=>pt,getMethodLabel:()=>De,useTreeExpansion:()=>Be,useTreeSearch:()=>ze});module.exports=Ct($t);var p=require("react");function*Qe(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 Ke(t,e){for(let{node:a}of Qe(t))if(a.id===e)return a}function Lt(t,e,a=[]){for(let o of Qe(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 Kt=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function Ue(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 b=n.get(c);b&&i.output.push(b)}else if(c.children?.length&&a(c))o.add(c),l.push({source:c.children,output:[],index:0,owner:c});else{let b=e(c);n.set(c,b),b&&i.output.push(b)}continue}l.pop();let T=i.source.length===i.output.length&&i.source.every((c,b)=>c===i.output[b])?i.source:i.output;if(!i.owner)return T;let h=i.owner,N=e(T===h.children?h:{...h,children:T});o.delete(h),n.set(h,N),N&&l[l.length-1].output.push(N)}return t}function tt(t,e){let a=e.query.trim().toLowerCase();return a?Ue(t,o=>o.name.toLowerCase().includes(a)||o.id.toLowerCase().includes(a)||(e.keepAncestors??!0)&&o.children?.length?o:null):t}function Oe(t,e={}){let a=[];for(let{node:o,depth:n}of Qe(t,e.maxDepth??1/0))n<=(e.maxDepth??1/0)&&(!(e.onlyWithChildren??!0)||o.children?.length)&&a.push(o.id);return a}function rt(t){return Oe(t)}function ot(t,e,a){return Ue(t,o=>o.id===e?a(o):o,o=>o.id!==e)}function Pt(t,e){return Ue(t,a=>a.id===e?null:a,a=>a.id!==e)}function nt(t,e){return Math.max(0,Math.min(Number.isNaN(t)?0:Math.trunc(t),e))}function at(t,e,a){let o=Lt(t,e);if(!o)return null;let n=o.parent?.children??t,l=n.indexOf(o.target),i=nt(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?ot(t,o.parent.id,N=>({...N,children:h})):h}}function Ve(t,e,a,o){let n=Ke(t,e);if(!n||a!==null&&(!Ke(t,a)||Ke([n],a)))return null;let l=Pt(t,e),i=T=>{let h=[...T];return h.splice(nt(o??h.length,h.length),0,n),h};return a===null?i(l):ot(l,a,T=>({...T,children:i(T.children??[])}))}var de=require("react"),dt=require("react-dom"),ae=require("react/jsx-runtime");function it({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)({}),N=t.anchor.closest("dialog")??t.anchor.ownerDocument.body;return(0,de.useLayoutEffect)(()=>{let c=t.anchor.closest(".pde-tree-root")??t.anchor,b=getComputedStyle(c),I={};for(let k=0;k<b.length;k++){let F=b.item(k);(F.startsWith("--tree-")||F.startsWith("--color-")||F.startsWith("--radius-")||F.startsWith("--font-")||F.startsWith("--shadow-"))&&(I[F]=b.getPropertyValue(F))}h(I);let v=a.current;if(!v)return;let P=()=>{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))})};P();let Y=typeof ResizeObserver>"u"?void 0:new ResizeObserver(P);Y?.observe(v),v.querySelector("button:not(:disabled)")?.focus();let X=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()},te=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()};return document.addEventListener("pointerdown",X),document.addEventListener("scroll",te,!0),window.addEventListener("resize",e),()=>{Y?.disconnect(),document.removeEventListener("pointerdown",X),document.removeEventListener("scroll",te,!0),window.removeEventListener("resize",e),v.contains(document.activeElement)&&t.anchor.isConnected&&t.anchor.focus({preventScroll:!0})}},[t,e]),(0,dt.createPortal)((0,ae.jsx)("div",{ref:a,className:"pde-tree-contextMenu",style:{...T,...l},role:"menu","aria-label":t.ariaLabel??`Actions for ${t.node.name}`,tabIndex:-1,onKeyDown:c=>{let b=a.current;if(!b)return;let I=Array.from(b.querySelectorAll("button:not(:disabled)")),v=I.indexOf(document.activeElement);if(c.key==="Escape"||c.key==="Tab"){c.key==="Escape"&&c.preventDefault(),c.stopPropagation(),e();return}let P;if(c.key==="ArrowDown")P=(v+1)%I.length;else if(c.key==="ArrowUp")P=(v-1+I.length)%I.length;else if(c.key==="Home")P=0;else if(c.key==="End")P=I.length-1;else return;c.preventDefault(),I[P]?.focus()},children:t.items.map((c,b)=>(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===b?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(c.confirm&&o!==b){n(b);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===b?c.confirmLabel??t.confirmLabel??"Confirm?":c.label})]})]},`${c.label}-${b}`))}),N)}var E=require("react");function Be(t,e={}){let{defaultExpandedIds:a,defaultExpandDepth:o=1,onExpandedChange:n}=e,l=(0,E.useMemo)(()=>a!==void 0?[...a]:o<=1?[]:Oe(t,{maxDepth:o-1,onlyWithChildren:!0}),[]),[i,T]=(0,E.useState)(l),h=(0,E.useRef)(new Map),N=(0,E.useMemo)(()=>rt(t),[t]),c=(0,E.useMemo)(()=>new Set(i),[i]),b=(0,E.useRef)(i);b.current=i;let I=(0,E.useMemo)(()=>N.length>0&&N.every(S=>c.has(S)),[N,c]),v=(0,E.useCallback)(S=>{b.current=S,T(S),n?.(S)},[n]),P=(0,E.useCallback)(S=>{let C=b.current,ie=C.includes(S)?C.filter(se=>se!==S):[...C,S];v(ie)},[v]),Y=(0,E.useCallback)(()=>{v([...N])},[N,v]),X=(0,E.useCallback)(()=>{v([])},[v]),te=(0,E.useCallback)(S=>{let C=Oe(t,{maxDepth:S,onlyWithChildren:!0});v(C)},[t,v]),k=(0,E.useCallback)((S,C)=>{C?h.current.set(S,C):h.current.delete(S)},[]),F=(0,E.useCallback)(S=>{let C=h.current.get(S);C&&C.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:i,setExpandedIds:v,toggleNode:P,expandAll:Y,collapseAll:X,expandToDepth:te,isAllExpanded:I,allBranchIds:N,setNodeElementRef:k,scrollToNode:F,nodeElementRefs:h}}var V=require("react");function ze(t){let[e,a]=(0,V.useState)(""),o=(0,V.useDeferredValue)(e),[n,l]=(0,V.useState)(null),i=o.trim().length>0,T=(0,V.useMemo)(()=>i?tt(t,{query:o,keepAncestors:!0}):t,[t,o,i]),h=(0,V.useCallback)((c,b)=>{let I=e.trim(),v=c.trim();!I&&v&&l(b),I&&!v&&l(null),a(c)},[e]),N=(0,V.useCallback)(()=>{a(""),l(null)},[]);return{query:e,deferredQuery:o,isSearching:i,filteredNodes:T,expandedBeforeSearch:n,handleQueryChange:h,clearSearch:N}}var He={search:"Search...",searchTree:"Search tree",expandAll:"Expand all",collapseAll:"Collapse all",refresh:"Refresh",dragToReorder:"Drag to reorder",required:"Required",moreActions:"More actions",moreActionsFor:"More actions for {{name}}",treeNavigation:"Tree navigation",contextMenuFor:"Actions for {{name}}",confirmAction:"Confirm?",noResults:"No matching results",noItems:"No items"};function st(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 Fe={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function De(t){let e=t.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Fe,e)?Fe[e]:e.slice(0,4).toUpperCase()}var M=require("react-icons/lu"),Ge=require("react-icons/md"),s=require("react/jsx-runtime"),m={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 At({expanded:t}){return(0,s.jsx)("span",{className:m.expandIcon,children:t?(0,s.jsx)(M.LuChevronDown,{size:14}):(0,s.jsx)(M.LuChevronRight,{size:14})})}function Ot(){return(0,s.jsx)(M.LuSearch,{size:14,"aria-hidden":"true"})}function Bt(){return(0,s.jsx)(M.LuGripVertical,{size:14,"aria-hidden":"true"})}function zt(){return(0,s.jsx)(M.LuEllipsisVertical,{size:14,"aria-hidden":"true"})}function ct(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 Ht(t,e,a,o){let n=ct(t);if(!n||n.length===0)return[];let l=JSON.stringify(n.slice(0,-1));if(!o.every((T,h)=>{let N=ct(T);return N&&N[N.length-1]===h&&JSON.stringify(N.slice(0,-1))===l}))return[];let i=n.slice(0,-1);return[{op:"move",from:[...i,e],path:[...i,a]}]}function Ft({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:m.highlight,children:t.slice(n,n+e.length)}),t.slice(n+e.length)]})}var lt={get:m.methodGet,post:m.methodPost,put:m.methodPut,patch:m.methodPatch,delete:m.methodDelete};function Gt({method:t}){let e=t.toLowerCase(),a=Object.prototype.hasOwnProperty.call(lt,e)?lt[e]:m.methodOther,o=De(t);return(0,s.jsx)("span",{className:`${m.methodBadge} ${a}`,children:o})}var J={draggedId:null,dragOverId:null,dragOverPosition:null};function qt(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||t.labels!==e.labels)}function jt(t){let{node:e,depth:a,onToggle:o,onSelect:n,onNodeRef:l,searchQuery:i,showIndentGuides:T,renderIcon:h,renderLabel:N,renderSuffix:c,renderNode:b,draggable:I,dragState:v,canDragNode:P,onDragStart:Y,onDragOver:X,onDragLeave:te,onDrop:k,onDragEnd:F,showContextMenuButton:S,activeMenuNodeId:C,onContextMenu:ie,onMoreClick:se,labels:ce}=t,{isExpanded:_,isSelected:xe}=t,fe=(e.children?.length??0)>0,A=fe,Ee=!fe,le=v.draggedId===e.id,Z=v.dragOverId===e.id,Q=Z?v.dragOverPosition:null,G=e.metadata,ee=typeof G?.method=="string"?G.method:void 0,be=G?.deprecated===!0,qe=G?.required===!0,q=typeof G?.kind=="string"?G.kind:void 0,R={node:e,depth:a,isExpanded:_,isSelected:xe,isBranch:A,isLeaf:Ee,isDragging:le,isDragOver:Z,dragOverPosition:Q},Te=(0,p.useCallback)(()=>{A?o(e.id):n(e)},[A,e,n,o]),he=(0,p.useCallback)(f=>{f.target===f.currentTarget&&(f.key==="Enter"||f.key===" "?(f.preventDefault(),Te()):(f.key==="ArrowRight"&&A&&!_||f.key==="ArrowLeft"&&A&&_)&&(f.preventDefault(),f.stopPropagation(),o(e.id)))},[Te,A,_,e.id,o]),Ce=h?h(R):ee?null:(0,s.jsx)("span",{className:m.nodeIcon,children:q==="section"&&G?.section==="components"?(0,s.jsx)(M.LuBraces,{size:14}):q==="section"&&G?.section==="webhooks"?(0,s.jsx)(M.LuZap,{size:14}):q==="schema"||q==="component"||q==="object"?(0,s.jsx)(M.LuBraces,{size:14}):q==="array"||q==="items"?(0,s.jsx)(M.LuList,{size:14}):A?_?(0,s.jsx)(M.LuFolderOpen,{size:14}):(0,s.jsx)(M.LuFolder,{size:14}):ee&&(0,s.jsx)(Gt,{method:ee})}),$=N?N(R):(0,s.jsx)("span",{className:`${m.nodeLabel} ${A?m.nodeLabelBranch:""} ${be?m.deprecatedLabel:""}`,children:(0,s.jsx)(Ft,{text:e.name,query:i})}),O=c?c(R):null,ge=[m.nodeRow,A?m.branchControl:m.leafItem,xe?m.nodeRowSelected:"",le?m.nodeDragging:"",Z&&Q==="before"?m.dropIndicatorBefore:"",Z&&Q==="after"?m.dropIndicatorAfter:"",Z&&Q==="child"?m.dropIndicatorChild:"",q?`pde-tree-kind-${q}`:""].filter(Boolean).join(" "),Le=(0,p.useCallback)(f=>l(e.id,f),[e.id,l]),re=(0,s.jsxs)("div",{ref:Le,className:ge,style:{paddingLeft:`${Math.min(a,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":A?_:void 0,"aria-label":ee?`${De(ee)} ${e.name}`:e.name,"aria-selected":xe,"aria-level":a+1,"aria-posinset":t.positionInSet,"aria-setsize":t.setSize,"aria-grabbed":I&&P?le:void 0,tabIndex:t.isFocused?0:-1,onFocus:()=>t.onFocusNode(e.id),onClick:Te,onKeyDown:he,onContextMenu:S?f=>ie(e,f):void 0,onDragOver:I?f=>X(e,f):void 0,onDragLeave:I?()=>te(e):void 0,onDrop:I?f=>k(e,f):void 0,children:[T&&a>1&&Array.from({length:Math.min(a-1,20)},(f,ve)=>(0,s.jsx)("span",{className:m.indentGuide,style:{left:`${(ve+1)*12+11}px`}},`guide-${ve}`)),I&&P?(0,s.jsx)("span",{className:m.dragHandle,style:{left:`${Math.min(a,20)*12+4}px`},draggable:!0,onDragStart:f=>Y(e,f),onDragEnd:F,title:ce.dragToReorder,"aria-label":ce.dragToReorder,children:(0,s.jsx)(Bt,{})}):null,A?(0,s.jsx)(At,{expanded:_}):(0,s.jsx)("span",{className:m.expandIconPlaceholder}),Ce,$,qe&&(0,s.jsx)("span",{className:m.requiredDot,title:ce.required}),(0,s.jsx)("span",{className:m.nodeSuffix,children:O}),S&&(0,s.jsx)("button",{type:"button",className:[m.moreButton,C===e.id?m.moreButtonActive:""].filter(Boolean).join(" "),onClick:f=>se(e,f),title:ce.moreActions,"aria-label":ce.moreActionsFor.split("{{name}}").join(e.name),"aria-haspopup":"menu","aria-expanded":C===e.id,tabIndex:-1,children:(0,s.jsx)(zt,{})})]}),Pe=b?b(R,re):re;return(0,s.jsx)(s.Fragment,{children:Pe})}var _t=(0,p.memo)(jt,qt),pt=(0,p.forwardRef)(function(e,a){let{nodes:o,onSelect:n,onExpandedChange:l,defaultExpandedIds:i,defaultExpandDepth:T=1,searchable:h=!1,searchPlaceholder:N,labels:c,showExpandAll:b=!1,showRefresh:I=!1,onRefresh:v,toolbar:P,searchRowExtra:Y,renderNode:X,renderIcon:te,renderLabel:k,renderSuffix:F,className:S,style:C,size:ie="sm",variant:se="default",showIndentGuides:ce=!0,maxHeight:_,rootRef:xe,draggable:fe=!1,dragGroupKey:A,onReorder:Ee,onMove:le,canDrag:Z,canDrop:Q,contextMenuItems:G,onContextMenuOpen:ee,onPatch:be,theme:qe,virtualized:q="auto"}=e,R=(0,p.useMemo)(()=>({...He,...c}),[c]),Te=N??R.search,[he,Ce]=(0,p.useState)(null),[$,O]=(0,p.useState)(J),[ge,Le]=(0,p.useState)(null),re=(0,p.useRef)(null),Pe=(0,p.useId)(),f=(0,p.useMemo)(()=>st(o),[o]),[ve,Ae]=(0,p.useState)({top:0,height:400}),[we,ye]=(0,p.useState)(null),[je,Je]=(0,p.useState)(null),y=Be(o,{defaultExpandedIds:i,defaultExpandDepth:T,onExpandedChange:l}),L=ze(o),Ye=L.isSearching?y.allBranchIds:L.expandedBeforeSearch??y.expandedIds,Ne=(0,p.useMemo)(()=>new Set(Ye),[Ye]),D=(0,p.useMemo)(()=>{let r=[],d=new Set,u=L.filteredNodes.map((g,x,w)=>({node:g,depth:0,parentId:null,positionInSet:x+1,setSize:w.length})).reverse();for(;u.length;){let g=u.pop();if(!d.has(g.node.id)&&(d.add(g.node.id),r.push(g),Ne.has(g.node.id))){let x=g.node.children??[];for(let w=x.length-1;w>=0;w--)u.push({node:x[w],depth:g.depth+1,parentId:g.node.id,positionInSet:w+1,setSize:x.length})}}return r},[L.filteredNodes,Ne]),Ie=(0,p.useMemo)(()=>new Map(D.map((r,d)=>[r.node.id,d])),[D]),pe=ie==="xs"?24:ie==="md"?32:28,oe=q!==!1&&se!=="doc"&&!X&&(q===!0||D.length>500),me=oe?Math.max(0,Math.min(Math.floor(ve.top/pe)-8,D.length-1)):0,Me=oe?Math.min(D.length,me+Math.ceil(ve.height/pe)+16):D.length,Xe=D.slice(me,Me);(0,p.useEffect)(()=>{let r=re.current;if(!r)return;let d=()=>Ae({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(!we)return;let r=Ie.get(we.id);if(r===void 0){ye(null);return}let d=re.current;if(oe&&d&&(r<me||r>=Me)){let g=d.clientHeight||400,x=Math.min(r*pe,Math.max(0,D.length*pe-g));d.scrollTop=x,Ae(w=>({...w,top:d.scrollTop}));return}let u=y.nodeElementRefs.current.get(we.id);we.focus&&u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"nearest"}),ye(null)},[we,Ie,oe,pe,me,Me,D.length,y.nodeElementRefs]);let _e=je===null?void 0:Ie.get(je),ut=_e!==void 0&&_e>=me&&_e<Me?je:Xe[0]?.node.id,$e=(0,p.useRef)({query:"",time:0}),ft=r=>{if(!(r.target instanceof HTMLElement)||r.target.getAttribute("role")!=="treeitem")return;let d=Ie.get(r.target.dataset.nodeId??"");if(d===void 0)return;let u=D[d],g=d;if(r.key==="ArrowDown")g=Math.min(d+1,D.length-1);else if(r.key==="ArrowUp")g=Math.max(0,d-1);else if(r.key==="Home")g=0;else if(r.key==="End")g=D.length-1;else if(r.key==="ArrowRight"&&u.node.children?.length&&Ne.has(u.node.id))g=Math.min(d+1,D.length-1);else if(r.key==="ArrowLeft"&&(!u.node.children?.length||!Ne.has(u.node.id)))g=Ie.get(u.parentId??"")??d;else if(r.key==="ContextMenu"||r.shiftKey&&r.key==="F10"){let w=r.target.getBoundingClientRect();r.preventDefault(),ke(u.node,w.left+24,w.bottom);return}else if(r.key.length===1&&r.key!==" "&&!r.ctrlKey&&!r.metaKey&&!r.altKey){let w=Date.now(),W=w-$e.current.time<600?$e.current.query+r.key.toLowerCase():r.key.toLowerCase();$e.current={query:W,time:w};for(let B=1;B<=D.length;B++){let z=(d+B)%D.length;if(D[z].node.name.toLowerCase().startsWith(W)){g=z;break}}}else return;r.preventDefault();let x=D[g].node.id;Je(x),ye({id:x,focus:!0})};(0,p.useEffect)(()=>{re.current&&(re.current.scrollTop=0),Ae(r=>({...r,top:0}))},[L.deferredQuery]);let ht=(0,p.useCallback)(r=>{Ce(r.id),n?.(r)},[n]),gt=(0,p.useCallback)(r=>{!r.trim()&&L.expandedBeforeSearch&&y.setExpandedIds(L.expandedBeforeSearch),L.handleQueryChange(r,y.expandedIds)},[y.expandedIds,L]),Se=(0,p.useCallback)(r=>!fe||r.metadata?.kind==="section"?!1:Z?Z(r):!0,[Z,fe]),Re=(0,p.useCallback)((r,d,u)=>{if(r.id===d.id||!Se(r)||f.path(d.id)?.ancestorIds.includes(r.id))return!1;if(A){let x=B=>{let z=f.path(B)?.nodes??[];for(let U=z.length-1;U>=0;U--){let j=z[U]?.metadata;if(j&&typeof j=="object"&&Object.prototype.hasOwnProperty.call(j,A))return j[A]}},w=x(r.id),W=x(d.id);if(w!==void 0&&W!==void 0&&w!==W)return!1}return!Q||Q(r,d,u)},[Se,Q,A,f]),mt=(0,p.useCallback)((r,d)=>{if(!Se(r)){d.preventDefault();return}d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",r.id),O({draggedId:r.id,dragOverId:null,dragOverPosition:null})},[Se]),xt=(0,p.useCallback)((r,d)=>{if(!$.draggedId||$.draggedId===r.id)return;d.dataTransfer.dropEffect="none";let u=f.byId.get($.draggedId)?.node;if(!u){O(H=>H.dragOverId===null?H:{...H,dragOverId:null,dragOverPosition:null});return}let g=d.currentTarget.getBoundingClientRect(),x=(d.clientY-g.top)/g.height,w=(r.children?.length??0)>0,W=x<.5?"before":"after",B,z;x<.25?(B=["before","after"],z=1):x>.75?(B=["after","before"],z=1):(B=[W],z=0);let U=Q?Re(u,r,"child"):!1;(w||U)&&B.splice(z,0,"child");let j=B.find(H=>Re(u,r,H));if(!j){O(H=>H.dragOverId===null?H:{...H,dragOverId:null,dragOverPosition:null});return}d.preventDefault(),d.dataTransfer.dropEffect="move",O(H=>H.dragOverId===r.id&&H.dragOverPosition===j?H:{...H,dragOverId:r.id,dragOverPosition:j})},[Re,Q,$.draggedId,f]),bt=(0,p.useCallback)(r=>{O(d=>d.dragOverId!==r.id?d:{...d,dragOverId:null,dragOverPosition:null})},[]),Tt=(0,p.useCallback)((r,d)=>{d.preventDefault();let u=$.draggedId,g=$.dragOverPosition;if(!u||!g||u===r.id||$.dragOverId!==r.id){O(J);return}let x=f.byId.get(u)?.node;if(!x||!Re(x,r,g)){O(J);return}if(g==="child"){let ue=f.path(u)?.target;if(!ue){O(J);return}let et=Ve(o,u,r.id);et&&le?.(et,ue,r.id),O(J);return}let w=f.path(r.id);if(!w){O(J);return}let W=w.parent?.children??o,B=W.findIndex(K=>K.id===r.id);if(B===-1){O(J);return}let z=g==="before"?B:B+1,U=f.path(u),j=w.parent?.id??null;if((U?.parent?.id??null)!==j){let K=U?.target,ue=Ve(o,u,j,z);ue&&K&&le?.(ue,K,j),O(J);return}if(U&&U.parent===w.parent){let K=W.findIndex(ue=>ue.id===u);K!==-1&&K<z&&(z-=1)}let ne=at(o,u,z);if(ne&&ne.fromIndex!==ne.toIndex&&(Ee?.(ne),be)){let K=Ht(ne.moved,ne.fromIndex,ne.toIndex,W);K.length>0&&be(K,{node:ne.moved,type:"reorder"})}O(J)},[$,o,f,Re,le,be,Ee]),vt=(0,p.useCallback)(()=>{O(J)},[]),ke=(0,p.useCallback)((r,d,u)=>{if(G){let g=G(r);if(g.length===0)return;let x=y.nodeElementRefs.current.get(r.id);x&&Le({x:d,y:u,node:r,items:g,anchor:x,ariaLabel:R.contextMenuFor.split("{{name}}").join(r.name),confirmLabel:R.confirmAction});return}ee?.({node:r,x:d,y:u})},[G,ee,y.nodeElementRefs,R]),wt=(0,p.useCallback)(()=>{Le(null)},[]),yt=(0,p.useCallback)((r,d)=>{d.preventDefault(),ke(r,d.clientX,d.clientY)},[ke]),Nt=(0,p.useCallback)((r,d)=>{d.stopPropagation();let u=d.currentTarget.getBoundingClientRect();ke(r,u.left,u.bottom+4)},[ke]),Ze=(0,p.useCallback)(r=>{let d=f.path(r);if(!d)return;let u=d.ancestorIds;y.setExpandedIds([...new Set([...y.expandedIds,...u])]),L.clearSearch(),ye({id:r,focus:!1})},[y,f,L.clearSearch]);(0,p.useImperativeHandle)(a,()=>({expandAll:y.expandAll,collapseAll:y.collapseAll,expandToDepth:y.expandToDepth,getExpandedIds:()=>y.expandedIds,getSelectedNode:()=>he?f.path(he)?.target:void 0,scrollToNode:Ze,locateNode:r=>{let d=[...o],u=new Set;for(let g=0;g<d.length;g++){let x=d[g];if(!(!x||u.has(x))){if(u.add(x),r(x)){let w=f.path(x.id);return w&&y.setExpandedIds([...new Set([...y.expandedIds,...w.ancestorIds])]),L.clearSearch(),Ce(x.id),ye({id:x.id,focus:!1}),x}if(x.children?.length)for(let w of x.children)d.push(w)}}}}),[y,Ze,he,o,f,L.clearSearch]);let It=(0,p.useMemo)(()=>({...C,..._!==void 0?{maxHeight:_}:{}}),[C,_]),Mt=[m.root,se!=="default"?`pde-tree-variant-${se}`:"",S].filter(Boolean).join(" ");return(0,s.jsxs)("div",{ref:xe,className:Mt,style:It,"data-size":ie,"data-theme":qe,children:[P&&(0,s.jsx)("div",{className:m.toolbar,children:P}),(h||b||I||Y)&&(0,s.jsxs)("div",{className:m.searchRow,children:[h&&(0,s.jsxs)("div",{className:m.searchInputWrap,children:[(0,s.jsx)("span",{className:m.searchIcon,children:(0,s.jsx)(Ot,{})}),(0,s.jsx)("input",{className:m.searchInput,type:"search","aria-controls":Pe,placeholder:Te,value:L.query,onChange:r=>gt(r.target.value),"aria-label":R.searchTree})]}),Y,b&&(0,s.jsx)("button",{type:"button",className:m.iconButton,onClick:y.isAllExpanded?y.collapseAll:y.expandAll,title:y.isAllExpanded?R.collapseAll:R.expandAll,"aria-label":y.isAllExpanded?R.collapseAll:R.expandAll,children:y.isAllExpanded?(0,s.jsx)(Ge.MdUnfoldLess,{size:16,"aria-hidden":"true"}):(0,s.jsx)(Ge.MdOutlineUnfoldMore,{size:16,"aria-hidden":"true"})}),I&&(0,s.jsx)("button",{type:"button",className:m.iconButton,onClick:v,title:R.refresh,"aria-label":R.refresh,children:(0,s.jsx)(M.LuRefreshCw,{size:14,"aria-hidden":"true"})})]}),(0,s.jsx)("div",{ref:re,className:m.treeContainer,"data-virtualized":oe||void 0,onScroll:r=>{oe&&Ae({top:r.currentTarget.scrollTop,height:r.currentTarget.clientHeight||400})},id:Pe,role:"tree",onKeyDown:ft,"aria-label":R.treeNavigation,children:L.filteredNodes.length===0?(0,s.jsx)("div",{className:m.emptyState,children:L.isSearching?R.noResults:R.noItems}):(0,s.jsxs)(s.Fragment,{children:[oe&&(0,s.jsx)("div",{role:"presentation",style:{height:me*pe}}),Xe.map(({node:r,depth:d,positionInSet:u,setSize:g})=>(0,s.jsx)(_t,{node:r,depth:d,positionInSet:u,setSize:g,isFocused:r.id===ut,onFocusNode:Je,isExpanded:Ne.has(r.id),isSelected:he===r.id,onToggle:y.toggleNode,onSelect:ht,onNodeRef:y.setNodeElementRef,searchQuery:L.deferredQuery,showIndentGuides:ce,renderIcon:te,renderLabel:k,renderSuffix:F,renderNode:X,draggable:fe,dragState:$,canDragNode:Se(r),onDragStart:mt,onDragOver:xt,onDragLeave:bt,onDrop:Tt,onDragEnd:vt,showContextMenuButton:!!(G||ee),activeMenuNodeId:ge?.node.id??null,onContextMenu:yt,onMoreClick:Nt,labels:R},r.id)),oe&&(0,s.jsx)("div",{role:"presentation",style:{height:(D.length-Me)*pe}})]})}),ge&&(0,s.jsx)(it,{state:ge,onClose:wt},ge.node.id)]})});0&&(module.exports={DEFAULT_TREE_LABELS,METHOD_LABEL_MAP,Tree,getMethodLabel,useTreeExpansion,useTreeSearch});
|
package/dist/react/index.d.cts
CHANGED
|
@@ -34,6 +34,43 @@ interface ContextMenuItem<TMetadata = unknown> {
|
|
|
34
34
|
/** Label shown when the item is in confirm state. Default "Confirm?". */
|
|
35
35
|
confirmLabel?: string;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* User-visible strings rendered by the tree. Host applications pass localized
|
|
39
|
+
* values; omitted fields use the English defaults so existing consumers keep
|
|
40
|
+
* working without changes.
|
|
41
|
+
*/
|
|
42
|
+
interface TreeLabels {
|
|
43
|
+
/** Search input placeholder. */
|
|
44
|
+
search: string;
|
|
45
|
+
/** Accessible label for the search input. */
|
|
46
|
+
searchTree: string;
|
|
47
|
+
/** Expand-all button tooltip and accessible label. */
|
|
48
|
+
expandAll: string;
|
|
49
|
+
/** Collapse-all button tooltip and accessible label. */
|
|
50
|
+
collapseAll: string;
|
|
51
|
+
/** Refresh button tooltip and accessible label. */
|
|
52
|
+
refresh: string;
|
|
53
|
+
/** Accessible label for a row drag handle. */
|
|
54
|
+
dragToReorder: string;
|
|
55
|
+
/** Tooltip for the required-parameter indicator. */
|
|
56
|
+
required: string;
|
|
57
|
+
/** Tooltip for the node more-actions button. */
|
|
58
|
+
moreActions: string;
|
|
59
|
+
/** Accessible label for a node more-actions button. Supports {{name}}. */
|
|
60
|
+
moreActionsFor: string;
|
|
61
|
+
/** Accessible label for the tree navigation region. */
|
|
62
|
+
treeNavigation: string;
|
|
63
|
+
/** Accessible label for a node context menu. Supports {{name}}. */
|
|
64
|
+
contextMenuFor: string;
|
|
65
|
+
/** Default label for a menu item in its two-tap confirm state. */
|
|
66
|
+
confirmAction: string;
|
|
67
|
+
/** Empty-state message during an active search. */
|
|
68
|
+
noResults: string;
|
|
69
|
+
/** Empty-state message when the tree has no nodes. */
|
|
70
|
+
noItems: string;
|
|
71
|
+
}
|
|
72
|
+
/** English default labels; merged under any host-provided partial labels. */
|
|
73
|
+
declare const DEFAULT_TREE_LABELS: TreeLabels;
|
|
37
74
|
/**
|
|
38
75
|
* Render context passed to custom render functions.
|
|
39
76
|
*/
|
|
@@ -69,6 +106,8 @@ interface TreeProps<TMetadata = unknown> {
|
|
|
69
106
|
searchable?: boolean;
|
|
70
107
|
/** Placeholder text for the search input. Default "Search...". */
|
|
71
108
|
searchPlaceholder?: string;
|
|
109
|
+
/** Localized, user-visible tree text. Omitted fields fall back to English. */
|
|
110
|
+
labels?: Partial<TreeLabels>;
|
|
72
111
|
/** Show expand/collapse all buttons in the toolbar. Default false. */
|
|
73
112
|
showExpandAll?: boolean;
|
|
74
113
|
/** Show refresh button in the toolbar. When clicked, calls onRefresh. Default false. */
|
|
@@ -228,4 +267,4 @@ declare const METHOD_LABEL_MAP: Record<string, string>;
|
|
|
228
267
|
*/
|
|
229
268
|
declare function getMethodLabel(method: string): string;
|
|
230
269
|
|
|
231
|
-
export { type ContextMenuItem, type JsonPatchOp, METHOD_LABEL_MAP, Tree, type TreeHandle, type TreeProps, type TreeRenderContext, getMethodLabel, useTreeExpansion, useTreeSearch };
|
|
270
|
+
export { type ContextMenuItem, DEFAULT_TREE_LABELS, type JsonPatchOp, METHOD_LABEL_MAP, Tree, type TreeHandle, type TreeLabels, type TreeProps, type TreeRenderContext, getMethodLabel, useTreeExpansion, useTreeSearch };
|
package/dist/react/index.d.ts
CHANGED
|
@@ -34,6 +34,43 @@ interface ContextMenuItem<TMetadata = unknown> {
|
|
|
34
34
|
/** Label shown when the item is in confirm state. Default "Confirm?". */
|
|
35
35
|
confirmLabel?: string;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* User-visible strings rendered by the tree. Host applications pass localized
|
|
39
|
+
* values; omitted fields use the English defaults so existing consumers keep
|
|
40
|
+
* working without changes.
|
|
41
|
+
*/
|
|
42
|
+
interface TreeLabels {
|
|
43
|
+
/** Search input placeholder. */
|
|
44
|
+
search: string;
|
|
45
|
+
/** Accessible label for the search input. */
|
|
46
|
+
searchTree: string;
|
|
47
|
+
/** Expand-all button tooltip and accessible label. */
|
|
48
|
+
expandAll: string;
|
|
49
|
+
/** Collapse-all button tooltip and accessible label. */
|
|
50
|
+
collapseAll: string;
|
|
51
|
+
/** Refresh button tooltip and accessible label. */
|
|
52
|
+
refresh: string;
|
|
53
|
+
/** Accessible label for a row drag handle. */
|
|
54
|
+
dragToReorder: string;
|
|
55
|
+
/** Tooltip for the required-parameter indicator. */
|
|
56
|
+
required: string;
|
|
57
|
+
/** Tooltip for the node more-actions button. */
|
|
58
|
+
moreActions: string;
|
|
59
|
+
/** Accessible label for a node more-actions button. Supports {{name}}. */
|
|
60
|
+
moreActionsFor: string;
|
|
61
|
+
/** Accessible label for the tree navigation region. */
|
|
62
|
+
treeNavigation: string;
|
|
63
|
+
/** Accessible label for a node context menu. Supports {{name}}. */
|
|
64
|
+
contextMenuFor: string;
|
|
65
|
+
/** Default label for a menu item in its two-tap confirm state. */
|
|
66
|
+
confirmAction: string;
|
|
67
|
+
/** Empty-state message during an active search. */
|
|
68
|
+
noResults: string;
|
|
69
|
+
/** Empty-state message when the tree has no nodes. */
|
|
70
|
+
noItems: string;
|
|
71
|
+
}
|
|
72
|
+
/** English default labels; merged under any host-provided partial labels. */
|
|
73
|
+
declare const DEFAULT_TREE_LABELS: TreeLabels;
|
|
37
74
|
/**
|
|
38
75
|
* Render context passed to custom render functions.
|
|
39
76
|
*/
|
|
@@ -69,6 +106,8 @@ interface TreeProps<TMetadata = unknown> {
|
|
|
69
106
|
searchable?: boolean;
|
|
70
107
|
/** Placeholder text for the search input. Default "Search...". */
|
|
71
108
|
searchPlaceholder?: string;
|
|
109
|
+
/** Localized, user-visible tree text. Omitted fields fall back to English. */
|
|
110
|
+
labels?: Partial<TreeLabels>;
|
|
72
111
|
/** Show expand/collapse all buttons in the toolbar. Default false. */
|
|
73
112
|
showExpandAll?: boolean;
|
|
74
113
|
/** Show refresh button in the toolbar. When clicked, calls onRefresh. Default false. */
|
|
@@ -228,4 +267,4 @@ declare const METHOD_LABEL_MAP: Record<string, string>;
|
|
|
228
267
|
*/
|
|
229
268
|
declare function getMethodLabel(method: string): string;
|
|
230
269
|
|
|
231
|
-
export { type ContextMenuItem, type JsonPatchOp, METHOD_LABEL_MAP, Tree, type TreeHandle, type TreeProps, type TreeRenderContext, getMethodLabel, useTreeExpansion, useTreeSearch };
|
|
270
|
+
export { type ContextMenuItem, DEFAULT_TREE_LABELS, type JsonPatchOp, METHOD_LABEL_MAP, Tree, type TreeHandle, type TreeLabels, type TreeProps, type TreeRenderContext, getMethodLabel, useTreeExpansion, useTreeSearch };
|
package/dist/react/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as Ue,j as He,k as Ye,p as Xe,q as Ge}from"../chunk-AHHDXXHL.js";import{forwardRef as Ct,memo as Rt,useCallback as C,useEffect as Qe,useImperativeHandle as Et,useId as Lt,useMemo as Se,useRef as at,useState as fe}from"react";import{useLayoutEffect as Mt,useRef as Tt,useState as qe}from"react";import{createPortal as St}from"react-dom";import{jsx as Ee,jsxs as Ze}from"react/jsx-runtime";function et({state:r,onClose:t}){let p=Tt(null),[n,i]=qe(null),[b,h]=qe({left:r.x,top:r.y}),[P,w]=qe({}),M=r.anchor.closest("dialog")??r.anchor.ownerDocument.body;return Mt(()=>{let l=r.anchor.closest(".pde-tree-root")??r.anchor,v=getComputedStyle(l),y={};for(let T=0;T<v.length;T++){let A=v.item(T);(A.startsWith("--tree-")||A.startsWith("--color-")||A.startsWith("--radius-")||A.startsWith("--font-")||A.startsWith("--shadow-"))&&(y[A]=v.getPropertyValue(A))}w(y);let f=p.current;if(!f)return;let R=()=>{let T=f.getBoundingClientRect();h({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))})};R();let _=typeof ResizeObserver>"u"?void 0:new ResizeObserver(R);_?.observe(f),f.querySelector("button:not(:disabled)")?.focus();let X=T=>{T.target instanceof Node&&!f.contains(T.target)&&t()},Z=T=>{T.target instanceof Node&&!f.contains(T.target)&&t()};return document.addEventListener("pointerdown",X),document.addEventListener("scroll",Z,!0),window.addEventListener("resize",t),()=>{_?.disconnect(),document.removeEventListener("pointerdown",X),document.removeEventListener("scroll",Z,!0),window.removeEventListener("resize",t),f.contains(document.activeElement)&&r.anchor.isConnected&&r.anchor.focus({preventScroll:!0})}},[r,t]),St(Ee("div",{ref:p,className:"pde-tree-contextMenu",style:{...P,...b},role:"menu","aria-label":`Actions for ${r.node.name}`,tabIndex:-1,onKeyDown:l=>{let v=p.current;if(!v)return;let y=Array.from(v.querySelectorAll("button:not(:disabled)")),f=y.indexOf(document.activeElement);if(l.key==="Escape"||l.key==="Tab"){l.key==="Escape"&&l.preventDefault(),l.stopPropagation(),t();return}let R;if(l.key==="ArrowDown")R=(f+1)%y.length;else if(l.key==="ArrowUp")R=(f-1+y.length)%y.length;else if(l.key==="Home")R=0;else if(l.key==="End")R=y.length-1;else return;l.preventDefault(),y[R]?.focus()},children:r.items.map((l,v)=>Ze("div",{role:"presentation",children:[l.separator&&Ee("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),Ze("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){i(v);return}t(),l.onClick(r.node)},children:[l.icon&&Ee("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:l.icon}),Ee("span",{children:l.confirm&&n===v?l.confirmLabel??"Confirm?":l.label})]})]},`${l.label}-${v}`))}),M)}import{useCallback as se,useMemo as Le,useRef as tt,useState as kt}from"react";function $e(r,t={}){let{defaultExpandedIds:p,defaultExpandDepth:n=1,onExpandedChange:i}=t,b=Le(()=>p!==void 0?[...p]:n<=1?[]:He(r,{maxDepth:n-1,onlyWithChildren:!0}),[]),[h,P]=kt(b),w=tt(new Map),M=Le(()=>Ye(r),[r]),l=Le(()=>new Set(h),[h]),v=tt(h);v.current=h;let y=Le(()=>M.length>0&&M.every(I=>l.has(I)),[M,l]),f=se(I=>{v.current=I,P(I),i?.(I)},[i]),R=se(I=>{let S=v.current,oe=S.includes(I)?S.filter(ge=>ge!==I):[...S,I];f(oe)},[f]),_=se(()=>{f([...M])},[M,f]),X=se(()=>{f([])},[f]),Z=se(I=>{let S=He(r,{maxDepth:I,onlyWithChildren:!0});f(S)},[r,f]),T=se((I,S)=>{S?w.current.set(I,S):w.current.delete(I)},[]),A=se(I=>{let S=w.current.get(I);S&&S.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:h,setExpandedIds:f,toggleNode:R,expandAll:_,collapseAll:X,expandToDepth:Z,isAllExpanded:y,allBranchIds:M,setNodeElementRef:T,scrollToNode:A,nodeElementRefs:w}}import{useCallback as rt,useDeferredValue as Nt,useMemo as Dt,useState as ot}from"react";function je(r){let[t,p]=ot(""),n=Nt(t),[i,b]=ot(null),h=n.trim().length>0,P=Dt(()=>h?Ue(r,{query:n,keepAncestors:!0}):r,[r,n,h]),w=rt((l,v)=>{let y=t.trim(),f=l.trim();!y&&f&&b(v),y&&!f&&b(null),p(l)},[t]),M=rt(()=>{p(""),b(null)},[]);return{query:t,deferredQuery:n,isSearching:h,filteredNodes:P,expandedBeforeSearch:i,handleQueryChange:w,clearSearch:M}}function nt(r){let t=new Map,p=new Set,n=r.map(i=>({node:i,parentId:null})).reverse();for(;n.length;){let i=n.pop();if(p.has(i.node)||t.has(i.node.id))continue;p.add(i.node),t.set(i.node.id,i);let b=i.node.children??[];for(let h=b.length-1;h>=0;h--)n.push({node:b[h],parentId:i.node.id})}return{byId:t,path(i){let b=t.get(i);if(!b)return null;let h=[b.node],P=b.parentId;for(;P!==null;){let w=t.get(P);if(!w)break;h.push(w.node),P=w.parentId}return h.reverse(),{nodes:h,target:b.node,parent:h[h.length-2],ancestorIds:h.slice(0,-1).map(w=>w.id)}}}}var Fe={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function Pe(r){let t=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Fe,t)?Fe[t]:t.slice(0,4).toUpperCase()}import{LuBraces as dt,LuChevronDown as Pt,LuChevronRight as Ot,LuEllipsisVertical as Bt,LuFolder as zt,LuFolderOpen as At,LuGripVertical as Ht,LuList as Gt,LuRefreshCw as qt,LuSearch as $t,LuZap as jt}from"react-icons/lu";import{MdOutlineUnfoldMore as Ft,MdUnfoldLess as Qt}from"react-icons/md";import{Fragment as ke,jsx as d,jsxs as he}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 Wt({expanded:r}){return d("span",{className:c.expandIcon,children:r?d(Pt,{size:14}):d(Ot,{size:14})})}function Kt(){return d($t,{size:14,"aria-hidden":"true"})}function Vt(){return d(Ht,{size:14,"aria-hidden":"true"})}function _t(){return d(Bt,{size:14,"aria-hidden":"true"})}function it(r){let p=r.metadata?.jsonPath;if(Array.isArray(p)&&p.length>0&&p.every(n=>typeof n=="string"||typeof n=="number"&&Number.isInteger(n)&&n>=0))return p}function Jt(r,t,p,n){let i=it(r);if(!i||i.length===0)return[];let b=JSON.stringify(i.slice(0,-1));if(!n.every((P,w)=>{let M=it(P);return M&&M[M.length-1]===w&&JSON.stringify(M.slice(0,-1))===b}))return[];let h=i.slice(0,-1);return[{op:"move",from:[...h,t],path:[...h,p]}]}function Ut({text:r,query:t}){if(!t)return d(ke,{children:r});let p=r.toLowerCase(),n=t.toLowerCase(),i=p.indexOf(n);return i===-1?d(ke,{children:r}):he(ke,{children:[r.slice(0,i),d("span",{className:c.highlight,children:r.slice(i,i+t.length)}),r.slice(i+t.length)]})}var st={get:c.methodGet,post:c.methodPost,put:c.methodPut,patch:c.methodPatch,delete:c.methodDelete};function Yt({method:r}){let t=r.toLowerCase(),p=Object.prototype.hasOwnProperty.call(st,t)?st[t]:c.methodOther,n=Pe(r);return d("span",{className:`${c.methodBadge} ${p}`,children:n})}var V={draggedId:null,dragOverId:null,dragOverPosition:null};function Xt(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 p=r.dragState.draggedId===r.node.id,n=t.dragState.draggedId===t.node.id;if(p!==n)return!1;let i=r.dragState.dragOverId===r.node.id,b=t.dragState.dragOverId===t.node.id;return!(i!==b||i&&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 Zt(r){let{node:t,depth:p,onToggle:n,onSelect:i,onNodeRef:b,searchQuery:h,showIndentGuides:P,renderIcon:w,renderLabel:M,renderSuffix:l,renderNode:v,draggable:y,dragState:f,canDragNode:R,onDragStart:_,onDragOver:X,onDragLeave:Z,onDrop:T,onDragEnd:A,showContextMenuButton:I,activeMenuNodeId:S,onContextMenu:oe,onMoreClick:ge}=r,{isExpanded:$,isSelected:me}=r,ce=(t.children?.length??0)>0,E=ce,Ne=!ce,ne=f.draggedId===t.id,J=f.dragOverId===t.id,W=J?f.dragOverPosition:null,H=t.metadata,U=typeof H?.method=="string"?H.method:void 0,xe=H?.deprecated===!0,Oe=H?.required===!0,G=typeof H?.kind=="string"?H.kind:void 0,Y={node:t,depth:p,isExpanded:$,isSelected:me,isBranch:E,isLeaf:Ne,isDragging:ne,isDragOver:J,dragOverPosition:W},le=C(()=>{E?n(t.id):i(t)},[E,t,i,n]),j=C(g=>{g.target===g.currentTarget&&(g.key==="Enter"||g.key===" "?(g.preventDefault(),le()):(g.key==="ArrowRight"&&E&&!$||g.key==="ArrowLeft"&&E&&$)&&(g.preventDefault(),g.stopPropagation(),n(t.id)))},[le,E,$,t.id,n]),L=w?w(Y):U?null:d("span",{className:c.nodeIcon,children:G==="section"&&H?.section==="components"?d(dt,{size:14}):G==="section"&&H?.section==="webhooks"?d(jt,{size:14}):G==="schema"||G==="component"||G==="object"?d(dt,{size:14}):G==="array"||G==="items"?d(Gt,{size:14}):E?$?d(At,{size:14}):d(zt,{size:14}):U&&d(Yt,{method:U})}),pe=M?M(Y):d("span",{className:`${c.nodeLabel} ${E?c.nodeLabelBranch:""} ${xe?c.deprecatedLabel:""}`,children:d(Ut,{text:t.name,query:h})}),De=l?l(Y):null,ae=[c.nodeRow,E?c.branchControl:c.leafItem,me?c.nodeRowSelected:"",ne?c.nodeDragging:"",J&&W==="before"?c.dropIndicatorBefore:"",J&&W==="after"?c.dropIndicatorAfter:"",J&&W==="child"?c.dropIndicatorChild:"",G?`pde-tree-kind-${G}`:""].filter(Boolean).join(" "),Ce=C(g=>b(t.id,g),[t.id,b]),k=he("div",{ref:Ce,className:ae,style:{paddingLeft:`${Math.min(p,20)*12+4}px`},"data-node-id":t.id,role:"treeitem","aria-expanded":E?$:void 0,"aria-label":U?`${Pe(U)} ${t.name}`:t.name,"aria-selected":me,"aria-level":p+1,"aria-posinset":r.positionInSet,"aria-setsize":r.setSize,"aria-grabbed":y&&R?ne:void 0,tabIndex:r.isFocused?0:-1,onFocus:()=>r.onFocusNode(t.id),onClick:le,onKeyDown:j,onContextMenu:I?g=>oe(t,g):void 0,onDragOver:y?g=>X(t,g):void 0,onDragLeave:y?()=>Z(t):void 0,onDrop:y?g=>T(t,g):void 0,children:[P&&p>1&&Array.from({length:Math.min(p-1,20)},(g,ee)=>d("span",{className:c.indentGuide,style:{left:`${(ee+1)*12+11}px`}},`guide-${ee}`)),y&&R?d("span",{className:c.dragHandle,style:{left:`${Math.min(p,20)*12+4}px`},draggable:!0,onDragStart:g=>_(t,g),onDragEnd:A,title:"Drag to reorder","aria-label":"Drag to reorder",children:d(Vt,{})}):null,E?d(Wt,{expanded:$}):d("span",{className:c.expandIconPlaceholder}),L,pe,Oe&&d("span",{className:c.requiredDot,title:"Required"}),d("span",{className:c.nodeSuffix,children:De}),I&&d("button",{type:"button",className:[c.moreButton,S===t.id?c.moreButtonActive:""].filter(Boolean).join(" "),onClick:g=>ge(t,g),title:"More actions","aria-label":`More actions for ${t.name}`,"aria-haspopup":"menu","aria-expanded":S===t.id,tabIndex:-1,children:d(_t,{})})]}),Re=v?v(Y,k):k;return d(ke,{children:Re})}var er=Rt(Zt,Xt),tr=Ct(function(t,p){let{nodes:n,onSelect:i,onExpandedChange:b,defaultExpandedIds:h,defaultExpandDepth:P=1,searchable:w=!1,searchPlaceholder:M="Search...",showExpandAll:l=!1,showRefresh:v=!1,onRefresh:y,toolbar:f,searchRowExtra:R,renderNode:_,renderIcon:X,renderLabel:Z,renderSuffix:T,className:A,style:I,size:S="sm",variant:oe="default",showIndentGuides:ge=!0,maxHeight:$,rootRef:me,draggable:ce=!1,dragGroupKey:E,onReorder:Ne,onMove:ne,canDrag:J,canDrop:W,contextMenuItems:H,onContextMenuOpen:U,onPatch:xe,theme:Oe,virtualized:G="auto"}=t,[Y,le]=fe(null),[j,L]=fe(V),[pe,De]=fe(null),ae=at(null),Ce=Lt(),k=Se(()=>nt(n),[n]),[Re,g]=fe({top:0,height:400}),[ee,be]=fe(null),[Be,We]=fe(null),x=$e(n,{defaultExpandedIds:h,defaultExpandDepth:P,onExpandedChange:b}),D=je(n),Ke=D.isSearching?x.allBranchIds:D.expandedBeforeSearch??x.expandedIds,ve=Se(()=>new Set(Ke),[Ke]),N=Se(()=>{let e=[],o=new Set,a=D.filteredNodes.map((s,u,m)=>({node:s,depth:0,parentId:null,positionInSet:u+1,setSize:m.length})).reverse();for(;a.length;){let s=a.pop();if(!o.has(s.node.id)&&(o.add(s.node.id),e.push(s),ve.has(s.node.id))){let u=s.node.children??[];for(let m=u.length-1;m>=0;m--)a.push({node:u[m],depth:s.depth+1,parentId:s.node.id,positionInSet:m+1,setSize:u.length})}}return e},[D.filteredNodes,ve]),we=Se(()=>new Map(N.map((e,o)=>[e.node.id,o])),[N]),de=S==="xs"?24:S==="md"?32:28,te=G!==!1&&oe!=="doc"&&!_&&(G===!0||N.length>500),ue=te?Math.max(0,Math.min(Math.floor(Re.top/de)-8,N.length-1)):0,ye=te?Math.min(N.length,ue+Math.ceil(Re.height/de)+16):N.length,Ve=N.slice(ue,ye);Qe(()=>{let e=ae.current;if(!e)return;let o=()=>g({top:e.scrollTop,height:e.clientHeight||400});o();let a=typeof ResizeObserver>"u"?void 0:new ResizeObserver(o);return a?.observe(e),()=>a?.disconnect()},[]),Qe(()=>{if(!ee)return;let e=we.get(ee.id);if(e===void 0){be(null);return}let o=ae.current;if(te&&o&&(e<ue||e>=ye)){let s=o.clientHeight||400,u=Math.min(e*de,Math.max(0,N.length*de-s));o.scrollTop=u,g(m=>({...m,top:o.scrollTop}));return}let a=x.nodeElementRefs.current.get(ee.id);ee.focus&&a?.focus({preventScroll:!0}),a?.scrollIntoView?.({block:"nearest"}),be(null)},[ee,we,te,de,ue,ye,N.length,x.nodeElementRefs]);let ze=Be===null?void 0:we.get(Be),ct=ze!==void 0&&ze>=ue&&ze<ye?Be:Ve[0]?.node.id,Ae=at({query:"",time:0}),lt=e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute("role")!=="treeitem")return;let o=we.get(e.target.dataset.nodeId??"");if(o===void 0)return;let a=N[o],s=o;if(e.key==="ArrowDown")s=Math.min(o+1,N.length-1);else if(e.key==="ArrowUp")s=Math.max(0,o-1);else if(e.key==="Home")s=0;else if(e.key==="End")s=N.length-1;else if(e.key==="ArrowRight"&&a.node.children?.length&&ve.has(a.node.id))s=Math.min(o+1,N.length-1);else if(e.key==="ArrowLeft"&&(!a.node.children?.length||!ve.has(a.node.id)))s=we.get(a.parentId??"")??o;else if(e.key==="ContextMenu"||e.shiftKey&&e.key==="F10"){let m=e.target.getBoundingClientRect();e.preventDefault(),Te(a.node,m.left+24,m.bottom);return}else if(e.key.length===1&&e.key!==" "&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let m=Date.now(),F=m-Ae.current.time<600?Ae.current.query+e.key.toLowerCase():e.key.toLowerCase();Ae.current={query:F,time:m};for(let O=1;O<=N.length;O++){let B=(o+O)%N.length;if(N[B].node.name.toLowerCase().startsWith(F)){s=B;break}}}else return;e.preventDefault();let u=N[s].node.id;We(u),be({id:u,focus:!0})};Qe(()=>{ae.current&&(ae.current.scrollTop=0),g(e=>({...e,top:0}))},[D.deferredQuery]);let pt=C(e=>{le(e.id),i?.(e)},[i]),ut=C(e=>{!e.trim()&&D.expandedBeforeSearch&&x.setExpandedIds(D.expandedBeforeSearch),D.handleQueryChange(e,x.expandedIds)},[x.expandedIds,D]),Ie=C(e=>!ce||e.metadata?.kind==="section"?!1:J?J(e):!0,[J,ce]),Me=C((e,o,a)=>{if(e.id===o.id||!Ie(e)||k.path(o.id)?.ancestorIds.includes(e.id))return!1;if(E){let u=O=>{let B=k.path(O)?.nodes??[];for(let K=B.length-1;K>=0;K--){let q=B[K]?.metadata;if(q&&typeof q=="object"&&Object.prototype.hasOwnProperty.call(q,E))return q[E]}},m=u(e.id),F=u(o.id);if(m!==void 0&&F!==void 0&&m!==F)return!1}return!W||W(e,o,a)},[Ie,W,E,k]),ft=C((e,o)=>{if(!Ie(e)){o.preventDefault();return}o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/plain",e.id),L({draggedId:e.id,dragOverId:null,dragOverPosition:null})},[Ie]),ht=C((e,o)=>{if(!j.draggedId||j.draggedId===e.id)return;o.dataTransfer.dropEffect="none";let a=k.byId.get(j.draggedId)?.node;if(!a){L(z=>z.dragOverId===null?z:{...z,dragOverId:null,dragOverPosition:null});return}let s=o.currentTarget.getBoundingClientRect(),u=(o.clientY-s.top)/s.height,m=(e.children?.length??0)>0,F=u<.5?"before":"after",O,B;u<.25?(O=["before","after"],B=1):u>.75?(O=["after","before"],B=1):(O=[F],B=0);let K=W?Me(a,e,"child"):!1;(m||K)&&O.splice(B,0,"child");let q=O.find(z=>Me(a,e,z));if(!q){L(z=>z.dragOverId===null?z:{...z,dragOverId:null,dragOverPosition:null});return}o.preventDefault(),o.dataTransfer.dropEffect="move",L(z=>z.dragOverId===e.id&&z.dragOverPosition===q?z:{...z,dragOverId:e.id,dragOverPosition:q})},[Me,W,j.draggedId,k]),gt=C(e=>{L(o=>o.dragOverId!==e.id?o:{...o,dragOverId:null,dragOverPosition:null})},[]),mt=C((e,o)=>{o.preventDefault();let a=j.draggedId,s=j.dragOverPosition;if(!a||!s||a===e.id||j.dragOverId!==e.id){L(V);return}let u=k.byId.get(a)?.node;if(!u||!Me(u,e,s)){L(V);return}if(s==="child"){let ie=k.path(a)?.target;if(!ie){L(V);return}let Je=Ge(n,a,e.id);Je&&ne?.(Je,ie,e.id),L(V);return}let m=k.path(e.id);if(!m){L(V);return}let F=m.parent?.children??n,O=F.findIndex(Q=>Q.id===e.id);if(O===-1){L(V);return}let B=s==="before"?O:O+1,K=k.path(a),q=m.parent?.id??null;if((K?.parent?.id??null)!==q){let Q=K?.target,ie=Ge(n,a,q,B);ie&&Q&&ne?.(ie,Q,q),L(V);return}if(K&&K.parent===m.parent){let Q=F.findIndex(ie=>ie.id===a);Q!==-1&&Q<B&&(B-=1)}let re=Xe(n,a,B);if(re&&re.fromIndex!==re.toIndex&&(Ne?.(re),xe)){let Q=Jt(re.moved,re.fromIndex,re.toIndex,F);Q.length>0&&xe(Q,{node:re.moved,type:"reorder"})}L(V)},[j,n,k,Me,ne,xe,Ne]),xt=C(()=>{L(V)},[]),Te=C((e,o,a)=>{if(H){let s=H(e);if(s.length===0)return;let u=x.nodeElementRefs.current.get(e.id);u&&De({x:o,y:a,node:e,items:s,anchor:u});return}U?.({node:e,x:o,y:a})},[H,U,x.nodeElementRefs]),bt=C(()=>{De(null)},[]),vt=C((e,o)=>{o.preventDefault(),Te(e,o.clientX,o.clientY)},[Te]),wt=C((e,o)=>{o.stopPropagation();let a=o.currentTarget.getBoundingClientRect();Te(e,a.left,a.bottom+4)},[Te]),_e=C(e=>{let o=k.path(e);if(!o)return;let a=o.ancestorIds;x.setExpandedIds([...new Set([...x.expandedIds,...a])]),D.clearSearch(),be({id:e,focus:!1})},[x,k,D.clearSearch]);Et(p,()=>({expandAll:x.expandAll,collapseAll:x.collapseAll,expandToDepth:x.expandToDepth,getExpandedIds:()=>x.expandedIds,getSelectedNode:()=>Y?k.path(Y)?.target:void 0,scrollToNode:_e,locateNode:e=>{let o=[...n],a=new Set;for(let s=0;s<o.length;s++){let u=o[s];if(!(!u||a.has(u))){if(a.add(u),e(u)){let m=k.path(u.id);return m&&x.setExpandedIds([...new Set([...x.expandedIds,...m.ancestorIds])]),D.clearSearch(),le(u.id),be({id:u.id,focus:!1}),u}if(u.children?.length)for(let m of u.children)o.push(m)}}}}),[x,_e,Y,n,k,D.clearSearch]);let yt=Se(()=>({...I,...$!==void 0?{maxHeight:$}:{}}),[I,$]),It=[c.root,oe!=="default"?`pde-tree-variant-${oe}`:"",A].filter(Boolean).join(" ");return he("div",{ref:me,className:It,style:yt,"data-size":S,"data-theme":Oe,children:[f&&d("div",{className:c.toolbar,children:f}),(w||l||v||R)&&he("div",{className:c.searchRow,children:[w&&he("div",{className:c.searchInputWrap,children:[d("span",{className:c.searchIcon,children:d(Kt,{})}),d("input",{className:c.searchInput,type:"search","aria-controls":Ce,placeholder:M,value:D.query,onChange:e=>ut(e.target.value),"aria-label":"Search tree"})]}),R,l&&d("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?d(Qt,{size:16,"aria-hidden":"true"}):d(Ft,{size:16,"aria-hidden":"true"})}),v&&d("button",{type:"button",className:c.iconButton,onClick:y,title:"Refresh","aria-label":"Refresh",children:d(qt,{size:14,"aria-hidden":"true"})})]}),d("div",{ref:ae,className:c.treeContainer,"data-virtualized":te||void 0,onScroll:e=>{te&&g({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight||400})},id:Ce,role:"tree",onKeyDown:lt,"aria-label":"Tree navigation",children:D.filteredNodes.length===0?d("div",{className:c.emptyState,children:D.isSearching?"No matching results":"No items"}):he(ke,{children:[te&&d("div",{role:"presentation",style:{height:ue*de}}),Ve.map(({node:e,depth:o,positionInSet:a,setSize:s})=>d(er,{node:e,depth:o,positionInSet:a,setSize:s,isFocused:e.id===ct,onFocusNode:We,isExpanded:ve.has(e.id),isSelected:Y===e.id,onToggle:x.toggleNode,onSelect:pt,onNodeRef:x.setNodeElementRef,searchQuery:D.deferredQuery,showIndentGuides:ge,renderIcon:X,renderLabel:Z,renderSuffix:T,renderNode:_,draggable:ce,dragState:j,canDragNode:Ie(e),onDragStart:ft,onDragOver:ht,onDragLeave:gt,onDrop:mt,onDragEnd:xt,showContextMenuButton:!!(H||U),activeMenuNodeId:pe?.node.id??null,onContextMenu:vt,onMoreClick:wt},e.id)),te&&d("div",{role:"presentation",style:{height:(N.length-ye)*de}})]})}),pe&&d(et,{state:pe,onClose:bt},pe.node.id)]})});export{Fe as METHOD_LABEL_MAP,tr as Tree,Pe as getMethodLabel,$e as useTreeExpansion,je as useTreeSearch};
|
|
1
|
+
import{i as et,j as Fe,k as tt,p as rt,q as je}from"../chunk-AHHDXXHL.js";import{forwardRef as Pt,memo as At,useCallback as D,useEffect as Ve,useImperativeHandle as Ot,useId as Bt,useMemo as fe,useRef as ct,useState as he}from"react";import{useLayoutEffect as kt,useRef as Rt,useState as $e}from"react";import{createPortal as Dt}from"react-dom";import{jsx as Ae,jsxs as ot}from"react/jsx-runtime";function nt({state:r,onClose:t}){let u=Rt(null),[n,s]=$e(null),[x,h]=$e({left:r.x,top:r.y}),[P,T]=$e({}),I=r.anchor.closest("dialog")??r.anchor.ownerDocument.body;return kt(()=>{let p=r.anchor.closest(".pde-tree-root")??r.anchor,v=getComputedStyle(p),w={};for(let N=0;N<v.length;N++){let z=v.item(N);(z.startsWith("--tree-")||z.startsWith("--color-")||z.startsWith("--radius-")||z.startsWith("--font-")||z.startsWith("--shadow-"))&&(w[z]=v.getPropertyValue(z))}T(w);let g=u.current;if(!g)return;let C=()=>{let N=g.getBoundingClientRect();h({left:Math.max(8,Math.min(r.x,document.documentElement.clientWidth-N.width-8)),top:Math.max(8,Math.min(r.y,document.documentElement.clientHeight-N.height-8))})};C();let V=typeof ResizeObserver>"u"?void 0:new ResizeObserver(C);V?.observe(g),g.querySelector("button:not(:disabled)")?.focus();let J=N=>{N.target instanceof Node&&!g.contains(N.target)&&t()},X=N=>{N.target instanceof Node&&!g.contains(N.target)&&t()};return document.addEventListener("pointerdown",J),document.addEventListener("scroll",X,!0),window.addEventListener("resize",t),()=>{V?.disconnect(),document.removeEventListener("pointerdown",J),document.removeEventListener("scroll",X,!0),window.removeEventListener("resize",t),g.contains(document.activeElement)&&r.anchor.isConnected&&r.anchor.focus({preventScroll:!0})}},[r,t]),Dt(Ae("div",{ref:u,className:"pde-tree-contextMenu",style:{...P,...x},role:"menu","aria-label":r.ariaLabel??`Actions for ${r.node.name}`,tabIndex:-1,onKeyDown:p=>{let v=u.current;if(!v)return;let w=Array.from(v.querySelectorAll("button:not(:disabled)")),g=w.indexOf(document.activeElement);if(p.key==="Escape"||p.key==="Tab"){p.key==="Escape"&&p.preventDefault(),p.stopPropagation(),t();return}let C;if(p.key==="ArrowDown")C=(g+1)%w.length;else if(p.key==="ArrowUp")C=(g-1+w.length)%w.length;else if(p.key==="Home")C=0;else if(p.key==="End")C=w.length-1;else return;p.preventDefault(),w[C]?.focus()},children:r.items.map((p,v)=>ot("div",{role:"presentation",children:[p.separator&&Ae("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),ot("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:p.disabled,className:`pde-tree-contextMenuItem${p.danger?" pde-tree-contextMenuItemDanger":""}${n===v?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(p.confirm&&n!==v){s(v);return}t(),p.onClick(r.node)},children:[p.icon&&Ae("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:p.icon}),Ae("span",{children:p.confirm&&n===v?p.confirmLabel??r.confirmLabel??"Confirm?":p.label})]})]},`${p.label}-${v}`))}),I)}import{useCallback as se,useMemo as Oe,useRef as at,useState as Ct}from"react";function _e(r,t={}){let{defaultExpandedIds:u,defaultExpandDepth:n=1,onExpandedChange:s}=t,x=Oe(()=>u!==void 0?[...u]:n<=1?[]:Fe(r,{maxDepth:n-1,onlyWithChildren:!0}),[]),[h,P]=Ct(x),T=at(new Map),I=Oe(()=>tt(r),[r]),p=Oe(()=>new Set(h),[h]),v=at(h);v.current=h;let w=Oe(()=>I.length>0&&I.every(y=>p.has(y)),[I,p]),g=se(y=>{v.current=y,P(y),s?.(y)},[s]),C=se(y=>{let k=v.current,re=k.includes(y)?k.filter(oe=>oe!==y):[...k,y];g(re)},[g]),V=se(()=>{g([...I])},[I,g]),J=se(()=>{g([])},[g]),X=se(y=>{let k=Fe(r,{maxDepth:y,onlyWithChildren:!0});g(k)},[r,g]),N=se((y,k)=>{k?T.current.set(y,k):T.current.delete(y)},[]),z=se(y=>{let k=T.current.get(y);k&&k.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:h,setExpandedIds:g,toggleNode:C,expandAll:V,collapseAll:J,expandToDepth:X,isAllExpanded:w,allBranchIds:I,setNodeElementRef:N,scrollToNode:z,nodeElementRefs:T}}import{useCallback as dt,useDeferredValue as Et,useMemo as Lt,useState as it}from"react";function Ke(r){let[t,u]=it(""),n=Et(t),[s,x]=it(null),h=n.trim().length>0,P=Lt(()=>h?et(r,{query:n,keepAncestors:!0}):r,[r,n,h]),T=dt((p,v)=>{let w=t.trim(),g=p.trim();!w&&g&&x(v),w&&!g&&x(null),u(p)},[t]),I=dt(()=>{u(""),x(null)},[]);return{query:t,deferredQuery:n,isSearching:h,filteredNodes:P,expandedBeforeSearch:s,handleQueryChange:T,clearSearch:I}}var Qe={search:"Search...",searchTree:"Search tree",expandAll:"Expand all",collapseAll:"Collapse all",refresh:"Refresh",dragToReorder:"Drag to reorder",required:"Required",moreActions:"More actions",moreActionsFor:"More actions for {{name}}",treeNavigation:"Tree navigation",contextMenuFor:"Actions for {{name}}",confirmAction:"Confirm?",noResults:"No matching results",noItems:"No items"};function st(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 x=s.node.children??[];for(let h=x.length-1;h>=0;h--)n.push({node:x[h],parentId:s.node.id})}return{byId:t,path(s){let x=t.get(s);if(!x)return null;let h=[x.node],P=x.parentId;for(;P!==null;){let T=t.get(P);if(!T)break;h.push(T.node),P=T.parentId}return h.reverse(),{nodes:h,target:x.node,parent:h[h.length-2],ancestorIds:h.slice(0,-1).map(T=>T.id)}}}}var We={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function Be(r){let t=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(We,t)?We[t]:t.slice(0,4).toUpperCase()}import{LuBraces as lt,LuChevronDown as zt,LuChevronRight as Ht,LuEllipsisVertical as Gt,LuFolder as qt,LuFolderOpen as Ft,LuGripVertical as jt,LuList as $t,LuRefreshCw as _t,LuSearch as Kt,LuZap as Qt}from"react-icons/lu";import{MdOutlineUnfoldMore as Wt,MdUnfoldLess as Vt}from"react-icons/md";import{Fragment as Re,jsx as d,jsxs as ge}from"react/jsx-runtime";var l={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 Jt({expanded:r}){return d("span",{className:l.expandIcon,children:r?d(zt,{size:14}):d(Ht,{size:14})})}function Ut(){return d(Kt,{size:14,"aria-hidden":"true"})}function Yt(){return d(jt,{size:14,"aria-hidden":"true"})}function Xt(){return d(Gt,{size:14,"aria-hidden":"true"})}function pt(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 Zt(r,t,u,n){let s=pt(r);if(!s||s.length===0)return[];let x=JSON.stringify(s.slice(0,-1));if(!n.every((P,T)=>{let I=pt(P);return I&&I[I.length-1]===T&&JSON.stringify(I.slice(0,-1))===x}))return[];let h=s.slice(0,-1);return[{op:"move",from:[...h,t],path:[...h,u]}]}function er({text:r,query:t}){if(!t)return d(Re,{children:r});let u=r.toLowerCase(),n=t.toLowerCase(),s=u.indexOf(n);return s===-1?d(Re,{children:r}):ge(Re,{children:[r.slice(0,s),d("span",{className:l.highlight,children:r.slice(s,s+t.length)}),r.slice(s+t.length)]})}var ut={get:l.methodGet,post:l.methodPost,put:l.methodPut,patch:l.methodPatch,delete:l.methodDelete};function tr({method:r}){let t=r.toLowerCase(),u=Object.prototype.hasOwnProperty.call(ut,t)?ut[t]:l.methodOther,n=Be(r);return d("span",{className:`${l.methodBadge} ${u}`,children:n})}var W={draggedId:null,dragOverId:null,dragOverPosition:null};function rr(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,x=t.dragState.dragOverId===t.node.id;return!(s!==x||s&&x&&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||r.labels!==t.labels)}function or(r){let{node:t,depth:u,onToggle:n,onSelect:s,onNodeRef:x,searchQuery:h,showIndentGuides:P,renderIcon:T,renderLabel:I,renderSuffix:p,renderNode:v,draggable:w,dragState:g,canDragNode:C,onDragStart:V,onDragOver:J,onDragLeave:X,onDrop:N,onDragEnd:z,showContextMenuButton:y,activeMenuNodeId:k,onContextMenu:re,onMoreClick:oe,labels:ne}=r,{isExpanded:F,isSelected:me}=r,ce=(t.children?.length??0)>0,E=ce,De=!ce,ae=g.draggedId===t.id,U=g.dragOverId===t.id,K=U?g.dragOverPosition:null,H=t.metadata,Y=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,M={node:t,depth:u,isExpanded:F,isSelected:me,isBranch:E,isLeaf:De,isDragging:ae,isDragOver:U,dragOverPosition:K},xe=D(()=>{E?n(t.id):s(t)},[E,t,s,n]),le=D(i=>{i.target===i.currentTarget&&(i.key==="Enter"||i.key===" "?(i.preventDefault(),xe()):(i.key==="ArrowRight"&&E&&!F||i.key==="ArrowLeft"&&E&&F)&&(i.preventDefault(),i.stopPropagation(),n(t.id)))},[xe,E,F,t.id,n]),Ce=T?T(M):Y?null:d("span",{className:l.nodeIcon,children:G==="section"&&H?.section==="components"?d(lt,{size:14}):G==="section"&&H?.section==="webhooks"?d(Qt,{size:14}):G==="schema"||G==="component"||G==="object"?d(lt,{size:14}):G==="array"||G==="items"?d($t,{size:14}):E?F?d(Ft,{size:14}):d(qt,{size:14}):Y&&d(tr,{method:Y})}),j=I?I(M):d("span",{className:`${l.nodeLabel} ${E?l.nodeLabelBranch:""} ${be?l.deprecatedLabel:""}`,children:d(er,{text:t.name,query:h})}),L=p?p(M):null,pe=[l.nodeRow,E?l.branchControl:l.leafItem,me?l.nodeRowSelected:"",ae?l.nodeDragging:"",U&&K==="before"?l.dropIndicatorBefore:"",U&&K==="after"?l.dropIndicatorAfter:"",U&&K==="child"?l.dropIndicatorChild:"",G?`pde-tree-kind-${G}`:""].filter(Boolean).join(" "),Ee=D(i=>x(t.id,i),[t.id,x]),Z=ge("div",{ref:Ee,className:pe,style:{paddingLeft:`${Math.min(u,20)*12+4}px`},"data-node-id":t.id,role:"treeitem","aria-expanded":E?F:void 0,"aria-label":Y?`${Be(Y)} ${t.name}`:t.name,"aria-selected":me,"aria-level":u+1,"aria-posinset":r.positionInSet,"aria-setsize":r.setSize,"aria-grabbed":w&&C?ae:void 0,tabIndex:r.isFocused?0:-1,onFocus:()=>r.onFocusNode(t.id),onClick:xe,onKeyDown:le,onContextMenu:y?i=>re(t,i):void 0,onDragOver:w?i=>J(t,i):void 0,onDragLeave:w?()=>X(t):void 0,onDrop:w?i=>N(t,i):void 0,children:[P&&u>1&&Array.from({length:Math.min(u-1,20)},(i,ve)=>d("span",{className:l.indentGuide,style:{left:`${(ve+1)*12+11}px`}},`guide-${ve}`)),w&&C?d("span",{className:l.dragHandle,style:{left:`${Math.min(u,20)*12+4}px`},draggable:!0,onDragStart:i=>V(t,i),onDragEnd:z,title:ne.dragToReorder,"aria-label":ne.dragToReorder,children:d(Yt,{})}):null,E?d(Jt,{expanded:F}):d("span",{className:l.expandIconPlaceholder}),Ce,j,ze&&d("span",{className:l.requiredDot,title:ne.required}),d("span",{className:l.nodeSuffix,children:L}),y&&d("button",{type:"button",className:[l.moreButton,k===t.id?l.moreButtonActive:""].filter(Boolean).join(" "),onClick:i=>oe(t,i),title:ne.moreActions,"aria-label":ne.moreActionsFor.split("{{name}}").join(t.name),"aria-haspopup":"menu","aria-expanded":k===t.id,tabIndex:-1,children:d(Xt,{})})]}),Le=v?v(M,Z):Z;return d(Re,{children:Le})}var nr=At(or,rr),ar=Pt(function(t,u){let{nodes:n,onSelect:s,onExpandedChange:x,defaultExpandedIds:h,defaultExpandDepth:P=1,searchable:T=!1,searchPlaceholder:I,labels:p,showExpandAll:v=!1,showRefresh:w=!1,onRefresh:g,toolbar:C,searchRowExtra:V,renderNode:J,renderIcon:X,renderLabel:N,renderSuffix:z,className:y,style:k,size:re="sm",variant:oe="default",showIndentGuides:ne=!0,maxHeight:F,rootRef:me,draggable:ce=!1,dragGroupKey:E,onReorder:De,onMove:ae,canDrag:U,canDrop:K,contextMenuItems:H,onContextMenuOpen:Y,onPatch:be,theme:ze,virtualized:G="auto"}=t,M=fe(()=>({...Qe,...p}),[p]),xe=I??M.search,[le,Ce]=he(null),[j,L]=he(W),[pe,Ee]=he(null),Z=ct(null),Le=Bt(),i=fe(()=>st(n),[n]),[ve,Pe]=he({top:0,height:400}),[we,Te]=he(null),[He,Je]=he(null),b=_e(n,{defaultExpandedIds:h,defaultExpandDepth:P,onExpandedChange:x}),R=Ke(n),Ue=R.isSearching?b.allBranchIds:R.expandedBeforeSearch??b.expandedIds,ye=fe(()=>new Set(Ue),[Ue]),S=fe(()=>{let e=[],o=new Set,a=R.filteredNodes.map((c,f,m)=>({node:c,depth:0,parentId:null,positionInSet:f+1,setSize:m.length})).reverse();for(;a.length;){let c=a.pop();if(!o.has(c.node.id)&&(o.add(c.node.id),e.push(c),ye.has(c.node.id))){let f=c.node.children??[];for(let m=f.length-1;m>=0;m--)a.push({node:f[m],depth:c.depth+1,parentId:c.node.id,positionInSet:m+1,setSize:f.length})}}return e},[R.filteredNodes,ye]),Ie=fe(()=>new Map(S.map((e,o)=>[e.node.id,o])),[S]),de=re==="xs"?24:re==="md"?32:28,ee=G!==!1&&oe!=="doc"&&!J&&(G===!0||S.length>500),ue=ee?Math.max(0,Math.min(Math.floor(ve.top/de)-8,S.length-1)):0,Me=ee?Math.min(S.length,ue+Math.ceil(ve.height/de)+16):S.length,Ye=S.slice(ue,Me);Ve(()=>{let e=Z.current;if(!e)return;let o=()=>Pe({top:e.scrollTop,height:e.clientHeight||400});o();let a=typeof ResizeObserver>"u"?void 0:new ResizeObserver(o);return a?.observe(e),()=>a?.disconnect()},[]),Ve(()=>{if(!we)return;let e=Ie.get(we.id);if(e===void 0){Te(null);return}let o=Z.current;if(ee&&o&&(e<ue||e>=Me)){let c=o.clientHeight||400,f=Math.min(e*de,Math.max(0,S.length*de-c));o.scrollTop=f,Pe(m=>({...m,top:o.scrollTop}));return}let a=b.nodeElementRefs.current.get(we.id);we.focus&&a?.focus({preventScroll:!0}),a?.scrollIntoView?.({block:"nearest"}),Te(null)},[we,Ie,ee,de,ue,Me,S.length,b.nodeElementRefs]);let Ge=He===null?void 0:Ie.get(He),ft=Ge!==void 0&&Ge>=ue&&Ge<Me?He:Ye[0]?.node.id,qe=ct({query:"",time:0}),ht=e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute("role")!=="treeitem")return;let o=Ie.get(e.target.dataset.nodeId??"");if(o===void 0)return;let a=S[o],c=o;if(e.key==="ArrowDown")c=Math.min(o+1,S.length-1);else if(e.key==="ArrowUp")c=Math.max(0,o-1);else if(e.key==="Home")c=0;else if(e.key==="End")c=S.length-1;else if(e.key==="ArrowRight"&&a.node.children?.length&&ye.has(a.node.id))c=Math.min(o+1,S.length-1);else if(e.key==="ArrowLeft"&&(!a.node.children?.length||!ye.has(a.node.id)))c=Ie.get(a.parentId??"")??o;else if(e.key==="ContextMenu"||e.shiftKey&&e.key==="F10"){let m=e.target.getBoundingClientRect();e.preventDefault(),ke(a.node,m.left+24,m.bottom);return}else if(e.key.length===1&&e.key!==" "&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let m=Date.now(),$=m-qe.current.time<600?qe.current.query+e.key.toLowerCase():e.key.toLowerCase();qe.current={query:$,time:m};for(let A=1;A<=S.length;A++){let O=(o+A)%S.length;if(S[O].node.name.toLowerCase().startsWith($)){c=O;break}}}else return;e.preventDefault();let f=S[c].node.id;Je(f),Te({id:f,focus:!0})};Ve(()=>{Z.current&&(Z.current.scrollTop=0),Pe(e=>({...e,top:0}))},[R.deferredQuery]);let gt=D(e=>{Ce(e.id),s?.(e)},[s]),mt=D(e=>{!e.trim()&&R.expandedBeforeSearch&&b.setExpandedIds(R.expandedBeforeSearch),R.handleQueryChange(e,b.expandedIds)},[b.expandedIds,R]),Ne=D(e=>!ce||e.metadata?.kind==="section"?!1:U?U(e):!0,[U,ce]),Se=D((e,o,a)=>{if(e.id===o.id||!Ne(e)||i.path(o.id)?.ancestorIds.includes(e.id))return!1;if(E){let f=A=>{let O=i.path(A)?.nodes??[];for(let Q=O.length-1;Q>=0;Q--){let q=O[Q]?.metadata;if(q&&typeof q=="object"&&Object.prototype.hasOwnProperty.call(q,E))return q[E]}},m=f(e.id),$=f(o.id);if(m!==void 0&&$!==void 0&&m!==$)return!1}return!K||K(e,o,a)},[Ne,K,E,i]),bt=D((e,o)=>{if(!Ne(e)){o.preventDefault();return}o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/plain",e.id),L({draggedId:e.id,dragOverId:null,dragOverPosition:null})},[Ne]),xt=D((e,o)=>{if(!j.draggedId||j.draggedId===e.id)return;o.dataTransfer.dropEffect="none";let a=i.byId.get(j.draggedId)?.node;if(!a){L(B=>B.dragOverId===null?B:{...B,dragOverId:null,dragOverPosition:null});return}let c=o.currentTarget.getBoundingClientRect(),f=(o.clientY-c.top)/c.height,m=(e.children?.length??0)>0,$=f<.5?"before":"after",A,O;f<.25?(A=["before","after"],O=1):f>.75?(A=["after","before"],O=1):(A=[$],O=0);let Q=K?Se(a,e,"child"):!1;(m||Q)&&A.splice(O,0,"child");let q=A.find(B=>Se(a,e,B));if(!q){L(B=>B.dragOverId===null?B:{...B,dragOverId:null,dragOverPosition:null});return}o.preventDefault(),o.dataTransfer.dropEffect="move",L(B=>B.dragOverId===e.id&&B.dragOverPosition===q?B:{...B,dragOverId:e.id,dragOverPosition:q})},[Se,K,j.draggedId,i]),vt=D(e=>{L(o=>o.dragOverId!==e.id?o:{...o,dragOverId:null,dragOverPosition:null})},[]),wt=D((e,o)=>{o.preventDefault();let a=j.draggedId,c=j.dragOverPosition;if(!a||!c||a===e.id||j.dragOverId!==e.id){L(W);return}let f=i.byId.get(a)?.node;if(!f||!Se(f,e,c)){L(W);return}if(c==="child"){let ie=i.path(a)?.target;if(!ie){L(W);return}let Ze=je(n,a,e.id);Ze&&ae?.(Ze,ie,e.id),L(W);return}let m=i.path(e.id);if(!m){L(W);return}let $=m.parent?.children??n,A=$.findIndex(_=>_.id===e.id);if(A===-1){L(W);return}let O=c==="before"?A:A+1,Q=i.path(a),q=m.parent?.id??null;if((Q?.parent?.id??null)!==q){let _=Q?.target,ie=je(n,a,q,O);ie&&_&&ae?.(ie,_,q),L(W);return}if(Q&&Q.parent===m.parent){let _=$.findIndex(ie=>ie.id===a);_!==-1&&_<O&&(O-=1)}let te=rt(n,a,O);if(te&&te.fromIndex!==te.toIndex&&(De?.(te),be)){let _=Zt(te.moved,te.fromIndex,te.toIndex,$);_.length>0&&be(_,{node:te.moved,type:"reorder"})}L(W)},[j,n,i,Se,ae,be,De]),Tt=D(()=>{L(W)},[]),ke=D((e,o,a)=>{if(H){let c=H(e);if(c.length===0)return;let f=b.nodeElementRefs.current.get(e.id);f&&Ee({x:o,y:a,node:e,items:c,anchor:f,ariaLabel:M.contextMenuFor.split("{{name}}").join(e.name),confirmLabel:M.confirmAction});return}Y?.({node:e,x:o,y:a})},[H,Y,b.nodeElementRefs,M]),yt=D(()=>{Ee(null)},[]),It=D((e,o)=>{o.preventDefault(),ke(e,o.clientX,o.clientY)},[ke]),Mt=D((e,o)=>{o.stopPropagation();let a=o.currentTarget.getBoundingClientRect();ke(e,a.left,a.bottom+4)},[ke]),Xe=D(e=>{let o=i.path(e);if(!o)return;let a=o.ancestorIds;b.setExpandedIds([...new Set([...b.expandedIds,...a])]),R.clearSearch(),Te({id:e,focus:!1})},[b,i,R.clearSearch]);Ot(u,()=>({expandAll:b.expandAll,collapseAll:b.collapseAll,expandToDepth:b.expandToDepth,getExpandedIds:()=>b.expandedIds,getSelectedNode:()=>le?i.path(le)?.target:void 0,scrollToNode:Xe,locateNode:e=>{let o=[...n],a=new Set;for(let c=0;c<o.length;c++){let f=o[c];if(!(!f||a.has(f))){if(a.add(f),e(f)){let m=i.path(f.id);return m&&b.setExpandedIds([...new Set([...b.expandedIds,...m.ancestorIds])]),R.clearSearch(),Ce(f.id),Te({id:f.id,focus:!1}),f}if(f.children?.length)for(let m of f.children)o.push(m)}}}}),[b,Xe,le,n,i,R.clearSearch]);let Nt=fe(()=>({...k,...F!==void 0?{maxHeight:F}:{}}),[k,F]),St=[l.root,oe!=="default"?`pde-tree-variant-${oe}`:"",y].filter(Boolean).join(" ");return ge("div",{ref:me,className:St,style:Nt,"data-size":re,"data-theme":ze,children:[C&&d("div",{className:l.toolbar,children:C}),(T||v||w||V)&&ge("div",{className:l.searchRow,children:[T&&ge("div",{className:l.searchInputWrap,children:[d("span",{className:l.searchIcon,children:d(Ut,{})}),d("input",{className:l.searchInput,type:"search","aria-controls":Le,placeholder:xe,value:R.query,onChange:e=>mt(e.target.value),"aria-label":M.searchTree})]}),V,v&&d("button",{type:"button",className:l.iconButton,onClick:b.isAllExpanded?b.collapseAll:b.expandAll,title:b.isAllExpanded?M.collapseAll:M.expandAll,"aria-label":b.isAllExpanded?M.collapseAll:M.expandAll,children:b.isAllExpanded?d(Vt,{size:16,"aria-hidden":"true"}):d(Wt,{size:16,"aria-hidden":"true"})}),w&&d("button",{type:"button",className:l.iconButton,onClick:g,title:M.refresh,"aria-label":M.refresh,children:d(_t,{size:14,"aria-hidden":"true"})})]}),d("div",{ref:Z,className:l.treeContainer,"data-virtualized":ee||void 0,onScroll:e=>{ee&&Pe({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight||400})},id:Le,role:"tree",onKeyDown:ht,"aria-label":M.treeNavigation,children:R.filteredNodes.length===0?d("div",{className:l.emptyState,children:R.isSearching?M.noResults:M.noItems}):ge(Re,{children:[ee&&d("div",{role:"presentation",style:{height:ue*de}}),Ye.map(({node:e,depth:o,positionInSet:a,setSize:c})=>d(nr,{node:e,depth:o,positionInSet:a,setSize:c,isFocused:e.id===ft,onFocusNode:Je,isExpanded:ye.has(e.id),isSelected:le===e.id,onToggle:b.toggleNode,onSelect:gt,onNodeRef:b.setNodeElementRef,searchQuery:R.deferredQuery,showIndentGuides:ne,renderIcon:X,renderLabel:N,renderSuffix:z,renderNode:J,draggable:ce,dragState:j,canDragNode:Ne(e),onDragStart:bt,onDragOver:xt,onDragLeave:vt,onDrop:wt,onDragEnd:Tt,showContextMenuButton:!!(H||Y),activeMenuNodeId:pe?.node.id??null,onContextMenu:It,onMoreClick:Mt,labels:M},e.id)),ee&&d("div",{role:"presentation",style:{height:(S.length-Me)*de}})]})}),pe&&d(nt,{state:pe,onClose:yt},pe.node.id)]})});export{Qe as DEFAULT_TREE_LABELS,We as METHOD_LABEL_MAP,ar as Tree,Be as getMethodLabel,_e as useTreeExpansion,Ke as useTreeSearch};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerduck/tree",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.19",
|
|
4
4
|
"description": "Extensible tree component for API navigation, schema exploration, and documentation. Supports OpenAPI 3.2 nested tags, x-tagGroups, and custom data sources.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "powerduck",
|
package/dist/chunk-KPRGJSJS.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as f,l as X}from"./chunk-AHHDXXHL.js";function P(e,t,a){let o=new Map;for(let i of e)o.has(i.name)?a.push(`Duplicate tag "${i.name}" was ignored.`):o.set(i.name,i);let n=new Map;for(let i of o.values())i.parent&&!o.has(i.parent)&&a.push(`Tag "${i.name}" references unknown parent "${i.parent}", treating as root.`),n.set(i.name,i.parent&&o.has(i.parent)?i.parent:null);let c=new Set;for(let i of o.keys()){let p=new Set,r=i;for(;r!==null&&!c.has(r);){if(p.has(r)){a.push(`Circular tag reference detected at "${r}". Breaking cycle.`),n.set(r,null);break}p.add(r),r=n.get(r)??null}for(let u of p)c.add(u)}let d=new Map(Array.from(o,([i,p])=>[i,t(p)])),s=[];for(let[i,p]of d){let r=n.get(i);if(r==null)s.push(p);else{let u=d.get(r);(u.children??(u.children=[])).push(p)}}for(let i of d.values())i.children&&(i.children=f(i.children));return f(s)}var z=["get","put","post","delete","options","head","patch","trace"],te={showInternal:!1,showComponents:!0,showWebhooks:!0,defaultExpandDepth:2};function O(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function w(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function oe(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function B(e){return typeof e=="boolean"?e:void 0}function C(e){return Array.isArray(e)?e:void 0}function M(e,t){return t?!1:B(e["x-scalar-ignore"])===!0||B(e["x-internal"])===!0}function R(e){return oe(e["x-order"])}function re(e){return w(e["x-displayName"])}function ae(e){let t=O(e.paths);if(!t)return[];let a=[];for(let[o,n]of Object.entries(t)){let c=O(n);if(c)for(let d of z){let s=c[d];if(s==null)continue;let i=O(s);if(!i)continue;let p=w(i.operationId),r=w(i.summary),u=C(i.tags)?.filter(y=>typeof y=="string").map(y=>y.trim()).filter(y=>y.length>0)??[],m=r??p??`${d.toUpperCase()} ${o}`,g=p??`${d}:${o}`,T=`/paths/${encodeURIComponent(o)}/${d}`;a.push({id:g,path:o,method:d,name:m,summary:r,operationId:p,deprecated:B(i.deprecated)===!0,tags:u,pointer:T,raw:i})}}return a}function ie(e){let t=C(e.tags);if(!t)return[];let a=[];for(let o of t){let n=O(o),c=w(n?.name);!c||!n||a.push({name:c,displayName:re(n)??c,description:w(n.description),parent:w(n.parent),order:R(n),raw:n})}return a}function se(e){return e.some(t=>t.parent!==void 0)}function _(e){return{id:`op:root:${e.id}`,name:e.name,order:R(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,pointer:e.pointer,source:"fallback",kind:"operation"}}}function de(e,t,a,o){let n=new Map,c=[];for(let r of t)if(!M(r.raw,a.showInternal)){if(r.tags.length===0){c.push(r);continue}for(let u of r.tags){let m=n.get(u)??[];m.push(r),n.set(u,m)}}let d=r=>{let m=(n.get(r.name)??[]).map(g=>({id:`op:${r.name}:${g.id}`,name:g.name,order:R(g.raw),metadata:{method:g.method,path:g.path,operationId:g.operationId,deprecated:g.deprecated,summary:g.summary,pointer:g.pointer,source:"oas32-parent",kind:"operation"}}));return{id:`tag:${r.name}`,name:r.displayName,order:r.order,children:f(m),metadata:{source:"oas32-parent",kind:"tag"}}},s=new Set(e.map(r=>r.name)),i=[...e];for(let r of n.keys())s.has(r)||i.push({name:r,displayName:r,raw:{}});let p=P(i,d,o);return f([...p,...c.map(_)])}function ce(e){let t=C(e["x-tagGroups"]);if(!t)return[];let a=(o,n)=>{let c=O(o),d=w(c?.name),s=C(c?.tags)?.filter(p=>typeof p=="string").map(p=>p.trim()).filter(p=>p.length>0)??[];if(!d)return null;let i=C(c?.groups)?.map((p,r)=>a(p,r)).filter(p=>p!==null)??[];return{name:d,tags:s,groups:i.length>0?i:void 0,order:R(c??{})??n}};return t.map((o,n)=>a(o,n)).filter(o=>o!==null)}function pe(e,t,a,o){let n=new Map;for(let r of t)n.set(r.name,r.displayName);let c=new Map,d=[];for(let r of a)if(!M(r.raw,o.showInternal)){if(r.tags.length===0){d.push(r);continue}for(let u of r.tags){let m=c.get(u)??[];m.push(r),c.set(u,m)}}let s=r=>(c.get(r)??[]).map(m=>({id:`op:${r}:${m.id}`,name:m.name,order:R(m.raw),metadata:{method:m.method,path:m.path,operationId:m.operationId,deprecated:m.deprecated,summary:m.summary,pointer:m.pointer,source:"tag-group",kind:"operation"}})),i=r=>({id:`tag:${r}`,name:n.get(r)??r,children:f(s(r)),metadata:{source:"tag-group",kind:"tag"}}),p=r=>{let u=[];for(let m of r.tags)c.get(m)?.length&&u.push(i(m));for(let m of r.groups??[])u.push(p(m));return{id:`tag-group:${r.name}`,name:r.name,order:r.order,children:f(u),metadata:{source:"tag-group",kind:"tag-group"}}};return f([...e.map(p),...d.map(_)])}function ue(e,t,a){let o=new Map,n=[],c=new Map;for(let i=0;i<e.length;i+=1){let p=e[i];c.set(p.name,p.order??i)}for(let i of t)if(!M(i.raw,a.showInternal)){if(i.tags.length===0){n.push(i);continue}for(let p of i.tags){let r=o.get(p)??[];r.push(i),o.set(p,r)}}let d=new Map;for(let i of e)d.set(i.name,i.displayName);let s=[];for(let[i,p]of o){let r=p.map(u=>({id:`op:${i}:${u.id}`,name:u.name,order:R(u.raw),metadata:{method:u.method,path:u.path,operationId:u.operationId,deprecated:u.deprecated,summary:u.summary,pointer:u.pointer,source:"tag",kind:"operation"}}));s.push({id:`tag:${i}`,name:d.get(i)??i,order:c.get(i),children:f(r),metadata:{source:"tag",kind:"tag"}})}return f([...s,...n.map(_)])}function me(e,t){if(!t.showComponents)return;let a=O(e.components),o=O(a?.schemas);if(!o)return;let n=[];for(let[c,d]of Object.entries(o)){let s=O(d);!s||M(s,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:R(s),metadata:{pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"section",kind:"section",section:"components"}}}function ge(e,t){if(!t.showWebhooks)return;let a=O(e.webhooks);if(!a)return;let o=[];for(let[n,c]of Object.entries(a)){let d=O(c);if(d)for(let s of z){let i=d[s],p=O(i);if(!p||M(p,t.showInternal))continue;let r=w(p.operationId),u=w(p.summary),m=u??r??`${s.toUpperCase()} ${n}`;o.push({id:`webhook:${n}:${s}`,name:m,order:R(p),metadata:{method:s,path:n,operationId:r,deprecated:B(p.deprecated)===!0,summary:u,pointer:`/webhooks/${encodeURIComponent(n)}/${s}`,source:"tag",kind:"webhook"}})}}if(o.length!==0)return{id:"section:webhooks",name:"Webhooks",order:Number.MAX_SAFE_INTEGER-2,children:f(o),metadata:{source:"section",kind:"section",section:"webhooks"}}}function fe(e,t={}){let a={...te,...t},o=[],n=O(e);if(!n)return{root:{id:"root",name:"OpenAPI",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=ae(n),d=ie(n),s;if(se(d))s=de(d,c,a,o);else{let m=ce(n);m.length>0?s=pe(m,d,c,a):s=ue(d,c,a)}let i=ge(n,a),p=me(n,a),u=[{id:"section:apis",name:"APIs",children:s,metadata:{kind:"section",source:"section",section:"apis"},order:0},...i?[i]:[],...p?[p]:[]];return{root:{id:"root",name:"OpenAPI",children:f(u),metadata:{kind:"root"}},warnings:o}}var V={openapi:0,info:1,servers:2,paths:3,webhooks:4,components:5,security:6,tags:7,externalDocs:8,jsonSchemaDialect:9},j={maxDepth:8,maxNodes:1e4,showDeprecated:!0,expandCombinators:!0,showArrayItems:!0},Y=new Set(["string","number","integer","boolean","null"]);function x(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function F(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function Q(e){return typeof e=="boolean"?e:void 0}function L(e){return Array.isArray(e)?e:void 0}function le(e){let t=e.type;if(typeof t=="string"||Array.isArray(t)&&t.every(a=>typeof a=="string"))return t}function he(e){return e?Array.isArray(e)?e.every(t=>Y.has(t)):Y.has(e):!1}function Te(e){if(!e)return"unknown";switch(Array.isArray(e)?e[0]:e){case"object":return"object";case"array":return"array";case"string":return"string";case"number":return"number";case"integer":return"integer";case"boolean":return"boolean";case"null":return"null";default:return"unknown"}}function Z(e){return e?Array.isArray(e)?e.join(" | "):e:"any"}function S(e){return e.map(t=>t.replace(/[\\.\[\]]/g,a=>`\\${a}`)).join(".")||"root"}function E(e,t,a,o,n,c){n.remaining--;let d=le(t),s=F(t.format),i=F(t.description),p=Q(t.deprecated)===!0,r=Te(d),u={jsonPath:a,type:d,format:s,required:c,deprecated:p,description:i,kind:r},m=F(t.$ref);if(m){if(n.refStack.has(m))return n.warnings.push(`Circular $ref detected at ${a.join(".")}: ${m}. Breaking recursion.`),{id:S(a),name:e,metadata:{...u,kind:"ref",isLeaf:!0}};n.refStack.add(m)}let g,T=he(d),y=n.activeSchemas.has(t);if(y&&n.warnings.push(`Circular schema object detected at ${S(a)}.`),y||o>=n.options.maxDepth||n.remaining<=0)return m&&n.refStack.delete(m),{id:S(a),name:e,metadata:{...u,isLeaf:!0}};n.activeSchemas.add(t);let k=x(t.properties);if(k){let A=L(t.required)??[],N=new Set(A.filter(b=>typeof b=="string")),J=[];for(let[b,$]of Object.entries(k)){if(n.remaining<=0)break;let I=x($);I&&(!n.options.showDeprecated&&Q(I.deprecated)===!0||J.push(E(b,I,[...a,"properties",b],o+1,n,N.has(b))))}g=[...g??[],...f(J)],T=!1}if(n.remaining>0&&n.options.showArrayItems&&d==="array"){let A=x(t.items);if(A){let N=E("items",A,[...a,"items"],o+1,n,!1);g=[...g??[],N],T=!1}else u.hasItems=!1}if(n.options.expandCombinators){let A=[{key:"allOf",kind:"allOf"},{key:"anyOf",kind:"anyOf"},{key:"oneOf",kind:"oneOf"}];for(let{key:N,kind:J}of A){if(n.remaining<=0)break;let b=L(t[N]);if(!b?.length)continue;n.remaining--;let $=[];for(let D=0;D<b.length&&n.remaining>0;D++){let ne=b[D],W=x(ne);if(!W){n.remaining--,$.push({id:S([...a,N,String(D)]),name:`[${D}]`,metadata:{jsonPath:[...a,N,String(D)],kind:"unknown",isLeaf:!0}});continue}$.push(E(`[${D}]`,W,[...a,N,String(D)],o+1,n,!1))}let I={id:S([...a,N]),name:N,children:f($),metadata:{jsonPath:[...a,N],kind:J}};g=[...g??[],I],T=!1}}return L(t.enum)?.length&&!g?.length&&(u.kind="enum",T=!0),m&&n.refStack.delete(m),n.activeSchemas.delete(t),{id:S(a),name:e,order:Object.prototype.hasOwnProperty.call(V,e)?V[e]:void 0,metadata:{...u,isLeaf:T},children:g}}function Oe(e,t={}){let a={...j,...t};a.maxDepth=Number.isFinite(a.maxDepth)?Math.min(128,Math.max(0,Math.trunc(a.maxDepth))):j.maxDepth,a.maxNodes=Number.isFinite(a.maxNodes)?Math.min(1e5,Math.max(1,Math.trunc(a.maxNodes))):j.maxNodes;let o=[],n=x(e);if(!n)return{root:{id:"root",name:"Schema",metadata:{jsonPath:[],kind:"root",isLeaf:!0}},warnings:["Schema is null or not an object."]};let c={options:a,warnings:o,refStack:new Set,activeSchemas:new Set,remaining:a.maxNodes},d=E("root",n,[],0,c,!0);return c.remaining<=0&&o.push(`Schema node limit (${a.maxNodes}) reached; remaining branches were omitted.`),{root:d,warnings:o}}function Ne(e,t){if(t.length===0)return e;let a=JSON.stringify(t),o=[e],n=new Set;for(let c=0;c<o.length;c++){let d=o[c];if(!d||n.has(d))continue;if(n.add(d),JSON.stringify(d.metadata?.jsonPath)===a)return d;for(let i of d.children??[])o.push(i)}}function ye(e){return e.kind==="enum"?"enum":e.kind==="ref"?"$ref":e.format?`${Z(e.type)} (${e.format})`:Z(e.type)}var be=["get","put","post","delete","options","head","patch","trace"],we={showInternal:!1,showComponents:!1,showWebhooks:!0,expandOperationDetails:!1};function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function h(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}function q(e){return typeof e=="boolean"?e:void 0}function K(e){return Array.isArray(e)?e:void 0}function U(e,t){return t?!1:q(e["x-scalar-ignore"])===!0||q(e["x-internal"])===!0}function H(e){let t=e["x-order"];return typeof t=="number"&&Number.isFinite(t)?t:void 0}function ke(e){return h(e["x-displayName"])}function De(e,t){let a=[];for(let o of e){let n=l(o);if(!n)continue;let c=h(n.name),d=h(n.in);if(!c||!d)continue;let s=`${d}:${c}`;a.push({id:`${t}/parameters/${encodeURIComponent(s)}`,name:c,metadata:{paramIn:d,required:q(n.required)===!0,description:h(n.description),pointer:`${t}/parameters`,kind:"parameter"}})}return f(a)}function Re(e,t){let a=[];for(let[o,n]of Object.entries(e)){let c=l(n);if(!c)continue;let d=h(c.description),s=l(c.content),i=[];if(s)for(let[p]of Object.entries(s))i.push({id:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,name:p,metadata:{contentType:p,pointer:`${t}/responses/${encodeURIComponent(o)}/content/${encodeURIComponent(p)}`,kind:"content"}});a.push({id:`${t}/responses/${encodeURIComponent(o)}`,name:o,metadata:{statusCode:o,description:d,pointer:`${t}/responses/${encodeURIComponent(o)}`,kind:"response"},children:i.length>0?i:void 0})}return f(a)}function Ae(e,t){let a=[],o=K(e.parameters);if(o?.length){let d=De(o,t);d.length>0&&a.push({id:`${t}/parameters`,name:"Parameters",children:d,metadata:{pointer:`${t}/parameters`,kind:"parameters"}})}let n=l(e.requestBody);if(n){let d=l(n.content),s=[];if(d)for(let[i]of Object.entries(d))s.push({id:`${t}/requestBody/content/${encodeURIComponent(i)}`,name:i,metadata:{contentType:i,pointer:`${t}/requestBody/content/${encodeURIComponent(i)}`,kind:"content"}});a.push({id:`${t}/requestBody`,name:"Request Body",metadata:{description:h(n.description),required:q(n.required)===!0,pointer:`${t}/requestBody`,kind:"request-body"},children:s.length>0?s:void 0})}let c=l(e.responses);if(c){let d=Re(c,t);d.length>0&&a.push({id:`${t}/responses`,name:"Responses",children:d,metadata:{pointer:`${t}/responses`,kind:"responses"}})}return a}function Se(e){let t=l(e.paths);if(!t)return[];let a=[];for(let[o,n]of Object.entries(t)){let c=l(n);if(c)for(let d of be){let s=c[d],i=l(s);if(!i)continue;let p=h(i.operationId),r=h(i.summary),u=h(i.description),m=K(i.tags)?.filter(k=>typeof k=="string").map(k=>k.trim()).filter(k=>k.length>0)??[],g=r??p??`${d.toUpperCase()} ${o}`,T=p??`${d}:${o}`,y=`/paths/${encodeURIComponent(o)}/${d}`;a.push({id:T,path:o,method:d,name:g,summary:r,description:u,operationId:p,deprecated:q(i.deprecated)===!0,tags:m,pointer:y,raw:i})}}return a}function $e(e){let t=K(e.tags);if(!t)return[];let a=[];for(let o of t){let n=l(o),c=h(n?.name);!c||!n||a.push({name:c,displayName:ke(n)??c,description:h(n.description),parent:h(n.parent),order:H(n)})}return a}function Ie(e){return e.some(t=>t.parent!==void 0)}function G(e,t,a,o){let n=t.expandOperationDetails?Ae(e.raw,e.pointer):void 0;return{id:`op:${o}:${e.id}`,name:e.name,order:H(e.raw),metadata:{method:e.method,path:e.path,operationId:e.operationId,deprecated:e.deprecated,summary:e.summary,description:e.description,pointer:e.pointer,source:a,kind:"operation"},children:n&&n.length>0?n:void 0}}function Ce(e,t,a,o){let n=new Map;for(let r of t){if(U(r.raw,a.showInternal))continue;let u=r.tags.length>0?r.tags:["Other"];for(let m of u){let g=n.get(m)??[];g.push(r),n.set(m,g)}}let c=r=>{let m=(n.get(r.name)??[]).map(g=>G(g,a,"oas32-parent",r.name));return{id:`tag:${r.name}`,name:r.displayName,order:r.order,children:f(m),metadata:{description:r.description,source:"oas32-parent",kind:"tag"}}},d=new Set(e.map(r=>r.name)),s=[...e];for(let r of n.keys())r!=="Other"&&!d.has(r)&&s.push({name:r,displayName:r});let i=P(s,c,o),p=n.get("Other")??[];if(p.length>0&&!e.some(r=>r.name==="Other")){let r=p.map(u=>G(u,a,"fallback","Other"));i.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(r),metadata:{source:"fallback",kind:"tag"}})}return f(i)}function Me(e,t,a){let o=new Map,n=new Map;for(let s=0;s<e.length;s+=1)n.set(e[s].name,s);for(let s of t){if(U(s.raw,a.showInternal))continue;let i=s.tags.length>0?s.tags:["Other"];for(let p of i){let r=o.get(p)??[];r.push(s),o.set(p,r)}}let c=new Map;for(let s of e)c.set(s.name,s.displayName);let d=[];for(let[s,i]of o){let p=i.map(r=>G(r,a,"tag",s));d.push({id:`tag:${s}`,name:c.get(s)??s,order:s==="Other"?Number.MAX_SAFE_INTEGER:n.get(s),children:f(p),metadata:{source:"tag",kind:"tag"}})}return f(d)}function xe(e){return Array.isArray(e["x-tagGroups"])&&e["x-tagGroups"].length>0}function v(e,t,a=0,o={active:new Set,remaining:1e4,warned:!1}){if(!Array.isArray(e))return[];if(a>=128||o.active.has(e))return t.push("Nested tag groups were truncated at a cycle or the 128-level limit."),[];o.active.add(e);let n=[];for(let c of e){if(o.remaining<=0){o.warned||t.push("Tag group limit (10,000) reached; remaining groups were omitted."),o.warned=!0;break}let d=l(c);if(!d||typeof d.name!="string")continue;o.remaining--;let s={name:d.name};Array.isArray(d.tags)&&(s.tags=d.tags.filter(i=>typeof i=="string")),Array.isArray(d.groups)&&(s.groups=v(d.groups,t,a+1,o)),n.push(s)}return o.active.delete(e),n}function ee(e,t,a,o,n,c=0){let d=[];if(e.tags)for(let s of e.tags){let i=t.get(s);if(!i||i.length===0)continue;let p=i.map(r=>G(r,n,"tag-group",s));d.push({id:`tag:${s}`,name:a.get(s)??s,order:o.get(s),children:f(p),metadata:{source:"tag-group",kind:"tag"}})}if(e.groups)for(let s of e.groups)d.push(ee(s,t,a,o,n,c+1));return{id:`tag-group:${e.name}`,name:e.name,order:c*1e3,children:f(d),metadata:{source:"tag-group",kind:"tag-group"}}}function qe(e,t,a,o,n){let c=new Map,d=new Map,s=new Map;for(let u=0;u<t.length;u+=1)d.set(t[u].name,u),s.set(t[u].name,t[u].displayName);for(let u of a){if(U(u.raw,o.showInternal))continue;let m=u.tags.length>0?u.tags:["Other"];for(let g of m){let T=c.get(g)??[];T.push(u),c.set(g,T)}}let p=v(e["x-tagGroups"],n).map(u=>ee(u,c,s,d,o)),r=c.get("Other");if(r&&r.length>0){let u=r.map(m=>G(m,o,"fallback","Other"));p.push({id:"tag:Other",name:"Other",order:Number.MAX_SAFE_INTEGER,children:f(u),metadata:{source:"fallback",kind:"tag"}})}return f(p)}function Ge(e,t){if(!t.showComponents)return;let a=l(e.components),o=l(a?.schemas);if(!o)return;let n=[];for(let[c,d]of Object.entries(o)){let s=l(d);!s||U(s,t.showInternal)||n.push({id:`schema:${c}`,name:c,order:H(s),metadata:{description:h(s.description),pointer:`/components/schemas/${encodeURIComponent(c)}`,source:"tag",kind:"schema"}})}if(n.length!==0)return{id:"section:components",name:"Components",order:Number.MAX_SAFE_INTEGER-1,children:f(n),metadata:{source:"tag",kind:"component"}}}function Je(e){let t=new Map,a=X(e);for(let o=a.length-1;o>=0;o--){let n=a[o].node,c=n.children?.map(s=>t.get(s)).filter(Boolean),d=(n.metadata?.kind==="operation"?1:0)+(c?.reduce((s,i)=>s+(i.metadata?.operationCount??0),0)??0);t.set(n,{...n,children:c,metadata:{...n.metadata,operationCount:d}})}return e.map(o=>t.get(o))}function Pe(e,t={}){let a={...we,...t},o=[],n=l(e);if(!n)return{root:{id:"root",name:"API Documentation",children:[],metadata:{kind:"root"}},warnings:["Document is null or not an object."]};let c=Se(n),d=$e(n),s;Ie(d)?s=Ce(d,c,a,o):xe(n)?s=qe(n,d,c,a,o):s=Me(d,c,a);let i=Ge(n,a),p=Je([...s,...i?[i]:[]]);return{root:{id:"root",name:"API Documentation",children:f(p),metadata:{kind:"root"}},warnings:o}}export{fe as a,Oe as b,Ne as c,ye as d,Pe as e};
|