archsight 0.4.1 → 0.4.3

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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/docs/diagram.md +64 -0
  3. data/docs/modeling.md +33 -10
  4. data/lib/archsight/cli.rb +2 -1
  5. data/lib/archsight/database.rb +4 -3
  6. data/lib/archsight/diagram/cli.rb +11 -1
  7. data/lib/archsight/diagram/errors.rb +1 -0
  8. data/lib/archsight/diagram/includes.rb +168 -0
  9. data/lib/archsight/diagram/parser/ast.rb +5 -0
  10. data/lib/archsight/diagram/parser/table_layout.rb +2 -0
  11. data/lib/archsight/diagram/parser.rb +58 -16
  12. data/lib/archsight/diagram.rb +20 -4
  13. data/lib/archsight/export/confluence/storage.rb +6 -1
  14. data/lib/archsight/helpers/diagram_blocks.rb +34 -19
  15. data/lib/archsight/helpers/diagram_includes.rb +67 -0
  16. data/lib/archsight/helpers.rb +1 -0
  17. data/lib/archsight/linter/structure.rb +4 -1
  18. data/lib/archsight/linter.rb +10 -2
  19. data/lib/archsight/references.rb +4 -3
  20. data/lib/archsight/resources/application_component.rb +18 -0
  21. data/lib/archsight/resources/application_service.rb +9 -0
  22. data/lib/archsight/resources/technology_device.rb +56 -4
  23. data/lib/archsight/resources/technology_service.rb +16 -0
  24. data/lib/archsight/version.rb +1 -1
  25. data/lib/archsight/web/api/json_helpers.rb +3 -2
  26. data/lib/archsight/web/api/openapi/spec.yaml +9 -2
  27. data/lib/archsight/web/api/page_helpers.rb +1 -1
  28. data/lib/archsight/web/api/routes.rb +4 -3
  29. data/lib/archsight/web/application.rb +2 -1
  30. data/lib/archsight/web/public/vue/{DocPage-C2ubTXH7.js → DocPage-L0GzDFiV.js} +1 -1
  31. data/lib/archsight/web/public/vue/{EditorPage-Dso6PLMn.js → EditorPage-B3iNbh1u.js} +1 -1
  32. data/lib/archsight/web/public/vue/{ErrorPage-DnZ6YJLi.js → ErrorPage-Lro5vwhy.js} +1 -1
  33. data/lib/archsight/web/public/vue/{GraphView-CTl03Yre.js → GraphView-BRKwxa--.js} +1 -1
  34. data/lib/archsight/web/public/vue/{HomePage-C339nihQ.js → HomePage-DKgI1DXr.js} +2 -2
  35. data/lib/archsight/web/public/vue/{InstanceRouter-ZaCcjlIX.css → InstanceRouter-CJSkGdBG.css} +1 -1
  36. data/lib/archsight/web/public/vue/InstanceRouter-CX6qxVTm.js +1 -0
  37. data/lib/archsight/web/public/vue/{KindList-C0oaM3CF.js → KindList-C556gf23.js} +1 -1
  38. data/lib/archsight/web/public/vue/{PageView-OZB6G9Wu.js → PageView-DAqHjL1x.js} +1 -1
  39. data/lib/archsight/web/public/vue/{QueryError-C2xLkCEm.js → QueryError-DvspMrsh.js} +1 -1
  40. data/lib/archsight/web/public/vue/{ResourceList-DooWFwQP.js → ResourceList-BZOYa68X.js} +1 -1
  41. data/lib/archsight/web/public/vue/{SearchResults-BK-HjFnv.js → SearchResults-DaaOPG3t.js} +1 -1
  42. data/lib/archsight/web/public/vue/{WikiPage-B2FYmeHL.js → WikiPage-Bfx92Iig.js} +1 -1
  43. data/lib/archsight/web/public/vue/index-B_YGrWD8.css +1 -0
  44. data/lib/archsight/web/public/vue/{index-CLuLTE5I.js → index-DMhBow5t.js} +2 -2
  45. data/lib/archsight/web/public/vue.html +2 -2
  46. metadata +18 -16
  47. data/lib/archsight/web/public/vue/InstanceRouter-DFW7tOrD.js +0 -1
  48. data/lib/archsight/web/public/vue/index-BLSE5DSv.css +0 -1
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["vue/mermaid-C3bOamfn.js","vue/rolldown-runtime-COiEfhsA.js"])))=>i.map(i=>d[i]);
2
- import{M as e}from"./mermaid-C3bOamfn.js";import{$ as t,A as n,B as r,E as i,F as a,G as o,H as s,I as c,J as l,L as u,M as d,N as f,P as p,Q as m,T as h,U as g,W as _,X as v,Y as y,a as b,at as x,b as S,c as C,h as w,it as T,j as E,n as D,nt as O,q as k,rt as A,tt as j,w as M,z as N}from"./index-CLuLTE5I.js";import{t as P}from"./useHighlight-BH32C7yt.js";import{t as F}from"./usePanZoom-HxgEsqq2.js";import{o as I,t as L}from"./ResourceList-DooWFwQP.js";import{t as R}from"./QueryError-C2xLkCEm.js";var z=[`/kinds/`,`/pages/`,`/doc/`];function B(e){let t=i();function n(e){if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let n=e.target.closest(`a[href]`);if(!n||n.target&&n.target!==`_self`)return;let r=n.getAttribute(`href`);if(r?.startsWith(`#`)&&r.length>1){e.preventDefault();let n=t.currentRoute.value;n.hash===r?D(r)?.scrollIntoView({behavior:`smooth`}):t.push({query:n.query,hash:r})}else r&&z.some(e=>r.startsWith(e))&&(e.preventDefault(),t.push(r))}m(e,(e,t)=>{t?.removeEventListener(`click`,n),e?.addEventListener(`click`,n)},{immediate:!0,flush:`post`}),_(()=>{e.value?.removeEventListener(`click`,n)})}var V=null,H=!1;function U(){return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`default`}async function ee(){return V||(V=(await e(()=>import(`./mermaid-C3bOamfn.js`).then(e=>e.t),__vite__mapDeps([0,1]))).default,V.initialize({startOnLoad:!1,theme:U()}),te(),V)}function W(e){e.querySelectorAll(`.mermaid svg`).forEach(e=>{if(e.hasAttribute(`data-panzoom-init`))return;e.setAttribute(`data-panzoom-init`,`true`);let t=e.parentElement;F(e,t)})}function te(){H||(H=!0,window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,async()=>{V&&(V.initialize({startOnLoad:!1,theme:U()}),document.querySelectorAll(`.mermaid[data-mermaid-source]`).forEach(e=>{e.removeAttribute(`data-processed`),e.innerHTML=e.getAttribute(`data-mermaid-source`)}),await V.run(),document.querySelectorAll(`.mermaid`).forEach(e=>{e.querySelectorAll(`svg`).forEach(e=>e.removeAttribute(`data-panzoom-init`)),W(e.parentElement||e)}))}))}async function G(e){let t=e.querySelectorAll(`pre > code.language-mermaid`);if(t.length===0)return;let n=await ee();t.forEach(e=>{let t=e.parentElement,n=document.createElement(`div`);n.className=`mermaid`,n.setAttribute(`data-mermaid-source`,e.textContent),n.textContent=e.textContent,t.parentElement.replaceChild(n,t)}),await n.run(),W(e)}var ne=`/vendor/drawio/viewer.html`,re=`archsight-drawio`,ie=240,ae=4e3,oe=!1;function se(e){return[...document.querySelectorAll(`iframe.drawio-frame`)].find(t=>t.contentWindow===e)}function ce(e,t){let n=document.createElement(`div`);n.className=`drawio-error`,n.setAttribute(`role`,`alert`),n.textContent=t,e.replaceWith(n)}function le(e){let t=e.data;if(e.origin!==window.location.origin||!t||t.channel!==re)return;let n=se(e.source);n&&(t.type===`size`&&Number.isFinite(t.height)?n.style.height=`${Math.min(Math.ceil(t.height),ae)}px`:t.type===`error`&&ce(n,t.message||`The diagram could not be shown.`))}function ue(e,t){let n=document.createElement(`iframe`);return n.className=`drawio-frame`,n.src=`${ne}?src=${encodeURIComponent(e)}`,n.title=t||`draw.io diagram`,n.loading=`lazy`,n.referrerPolicy=`no-referrer`,n.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),n.style.height=`${ie}px`,n}function de(e){let t=document.createElement(`a`);return t.className=`drawio-open`,t.href=e,t.target=`_blank`,t.rel=`noopener`,t.textContent=`Open the .drawio file`,t}function K(e){e&&(oe||=(window.addEventListener(`message`,le),!0),e.querySelectorAll(`.drawio-diagram[data-drawio-src]:not([data-drawio-ready])`).forEach(e=>{let t=e.dataset.drawioSrc;e.dataset.drawioReady=`true`,e.replaceChildren(ue(t,e.dataset.drawioTitle),de(t))}))}var q=e=>(e||``).split(`,`).map(e=>e.trim()).filter(Boolean);function J(e){let t=e[`view/type`]||`list:name+kind`;return{query:e[`view/query`],fields:q(e[`view/fields`]),sort:q(e[`view/sort`]),showKind:t===`list:name+kind`}}var Y=e=>(e||``).split(`,`).filter(Boolean);function X(){let e=j([]);async function t(t){await g();let n=t?[...t.querySelectorAll(`.kind-embed[data-kind][data-name], .view-embed[data-query], .requirements-embed[data-of]`)]:[];e.value=n.map((e,t)=>{if(e.replaceChildren(),e.classList.contains(`requirements-embed`)){let n=e.dataset,r={of:n.of,priority:Y(n.priority),status:Y(n.status)};return{el:e,key:`requirements/${t}`,kind:`Requirements`,name:n.title,spec:r}}if(e.classList.contains(`view-embed`)){let n=e.dataset,r=J({"view/query":n.query,"view/fields":n.fields,"view/sort":n.sort,"view/type":n.type});return{el:e,key:`inline/${t}`,kind:`View`,name:n.title,spec:r}}return{el:e,key:`${e.dataset.kind}/${e.dataset.name}`,kind:e.dataset.kind,name:e.dataset.name}})}return{embeds:e,scanEmbeds:t}}var Z=(e,t)=>`${e} ${t}${e===1?``:`s`}`;function Q(e){if(!e)return null;if(!e.success)return{failed:!0,label:`Failed`,notes:``};let t=(e.sections||[]).filter(e=>e.type===`message`).map(e=>e.level),n=t.filter(e=>e===`error`).length,r=t.filter(e=>e===`warning`).length;return{failed:!1,label:`Completed`,notes:[n&&Z(n,`error`),r&&Z(r,`warning`)].filter(Boolean).join(`, `)}}var fe={key:1,class:`view-loading`,"aria-busy":`true`},pe={key:2,class:`view-results`},me={key:0},he={class:`view-result-meta`},ge=100,_e=b({__name:`ViewResults`,props:{query:String,fields:{type:Array,default:()=>[]},sort:{type:Array,default:()=>[]},showKind:{type:Boolean,default:!0},compact:{type:Boolean,default:!1}},emits:[`loaded`],setup(e,{emit:t}){let n=e,i=t,o=j([]),s=j(0),l=j(0),d=j(!1),h=j(!1),g=j(null),_=0;function v(e,t){return t.length?[...e].sort((e,n)=>{for(let r of t){let t=r.startsWith(`-`),i=t?r.slice(1):r,a=I(e,i)??``,o=I(n,i)??``,s=String(a).localeCompare(String(o),void 0,{numeric:!0});if(s!==0)return t?-s:s}return 0}):e}let y=f(()=>v(o.value,n.sort)),b=f(()=>n.fields.length?`annotations`:`brief`);async function S(){if(n.query){d.value=!0,g.value=null,_=0;try{let e=await M(n.query,{limit:ge,offset:0,output:b.value});o.value=e.instances||[],s.value=e.total||0,l.value=e.query_time_ms||0,_=o.value.length,i(`loaded`,{total:s.value})}catch(e){g.value=e.message}finally{d.value=!1}}}async function C(){if(!(h.value||_>=s.value||!n.query)){h.value=!0;try{let e=(await M(n.query,{limit:ge,offset:_,output:b.value})).instances||[];o.value=[...o.value,...e],_+=e.length}catch{}h.value=!1}}return m(()=>[n.query,n.fields.join(`,`)],S,{immediate:!0}),(t,n)=>g.value?(k(),a(R,{key:0,message:g.value},null,8,[`message`])):d.value?(k(),u(`article`,fe,[...n[0]||=[p(`i`,{class:`iconoir-refresh spinning`},null,-1),N(` Running query... `,-1)]])):e.query?(k(),u(`article`,pe,[e.compact?c(``,!0):(k(),u(`header`,me,[n[1]||=p(`h3`,null,`Results`,-1),p(`span`,he,x(s.value)+` `+x(s.value===1?`item`:`items`)+` in `+x(l.value)+` ms`,1)])),r(L,{instances:y.value,"omit-kind":!e.showKind,fields:e.fields.length?e.fields:null,total:s.value,"loading-more":h.value,embedded:e.compact,onLoadMore:C},null,8,[`instances`,`omit-kind`,`fields`,`total`,`loading-more`,`embedded`])])):c(``,!0)}},[[`__scopeId`,`data-v-8ee7464a`]]),ve=[`innerHTML`],ye=[`innerHTML`],be={key:1},xe=[`innerHTML`],Se={key:1},Ce=[`innerHTML`],we={key:1},Te={key:5,class:`code`},$=b({__name:`AnalysisSection`,props:{section:Object},setup(e){let t=j(null);B(t);let n={error:`xmark-circle`,warning:`warning-triangle`,info:`info-circle`};return(r,i)=>e.section.type===`heading`?(k(),u(`div`,{key:0,class:A([`analysis-heading`,`level-`+e.section.level])},x(e.section.text),3)):e.section.type===`text`?(k(),u(`div`,{key:1,ref_key:`sectionEl`,ref:t,class:`analysis-text`,innerHTML:e.section.content},null,8,ve)):e.section.type===`message`?(k(),u(`div`,{key:2,ref_key:`sectionEl`,ref:t,class:A([`analysis-message`,`message-`+e.section.level])},[p(`i`,{class:A(`iconoir-${n[e.section.level]||`info-circle`}`)},null,2),e.section.message_html==null?(k(),u(`span`,be,x(e.section.message),1)):(k(),u(`span`,{key:0,innerHTML:e.section.message_html},null,8,ye))],2)):e.section.type===`table`?(k(),u(`div`,{key:3,ref_key:`sectionEl`,ref:t,class:`analysis-table-wrapper`},[p(`table`,null,[p(`thead`,null,[p(`tr`,null,[(k(!0),u(E,null,l(e.section.headers,e=>(k(),u(`th`,{key:e},x(e),1))),128))])]),p(`tbody`,null,[(k(!0),u(E,null,l(e.section.rows,(t,n)=>(k(),u(`tr`,{key:n},[(k(!0),u(E,null,l(t,(t,r)=>(k(),u(E,{key:r},[e.section.rows_html?(k(),u(`td`,{key:0,innerHTML:e.section.rows_html[n][r]},null,8,xe)):(k(),u(`td`,Se,x(t),1))],64))),128))]))),128))])])],512)):e.section.type===`list`?(k(),u(`ul`,{key:4,ref_key:`sectionEl`,ref:t,class:`analysis-list`},[(k(!0),u(E,null,l(e.section.items,(t,n)=>(k(),u(E,{key:n},[e.section.items_html?(k(),u(`li`,{key:0,innerHTML:e.section.items_html[n]},null,8,Ce)):(k(),u(`li`,we,x(t),1))],64))),128))],512)):e.section.type===`code`?(k(),u(`pre`,Te,[p(`code`,{class:A(e.section.lang?`language-`+e.section.lang:``)},x(e.section.content),3)])):c(``,!0)}},[[`__scopeId`,`data-v-1a903fe7`]]),Ee={key:0,class:`analysis-bar`},De={class:`status-indicator`},Oe={key:0,class:`status-notes`,title:`Reported by the analysis`},ke={class:`analysis-bar-end`},Ae={key:0,class:`duration`,title:`Run time`},je={key:0,class:`analysis-error-details`},Me={key:0},Ne={class:`code`},Pe={key:1,class:`analysis-output`},Fe={key:1,open:``},Ie=[`title`],Le={class:`analysis-group-title`},Re={key:2,class:`analysis-results-placeholder`},ze=b({__name:`AnalysisResults`,props:{name:String,compact:{type:Boolean,default:!1}},emits:[`state`],setup(e,{emit:t}){let n=e,r=t,i=j(null),s=j(!1),d=j(null);async function h(){s.value=!0;try{i.value=await C(n.name)}catch(e){i.value={success:!1,error:e.message,sections:[]}}finally{s.value=!1}}function _(e){let t=[],n={title:null,sections:[]};for(let r of e)r.type===`heading`&&r.level===0?((n.title||n.sections.length)&&t.push(n),n={title:r.text,sections:[]}):n.sections.push(r);return(n.title||n.sections.length)&&t.push(n),t}let v={error:`xmark-circle`,warning:`warning-triangle`};function y(e){let t=e.sections.filter(e=>e.type===`message`).map(e=>e.level);return[`error`,`warning`].find(e=>t.includes(e))}let b=f(()=>i.value?.sections?.length?_(i.value.sections):[]),S=f(()=>Q(i.value)),w=f(()=>b.value.some(e=>e.title)),T=f(()=>b.value.filter(e=>e.title).length>1);return m([i,s],()=>r(`state`,{result:i.value,executing:s.value}),{immediate:!0}),m(i,async()=>{await g(),d.value&&P(d.value)}),o(h),(t,n)=>(k(),u(`article`,{ref_key:`rootEl`,ref:d,class:A([`analysis-execution`,{compact:e.compact}])},[e.compact?c(``,!0):(k(),u(`div`,Ee,[p(`span`,De,[S.value?(k(),u(E,{key:0},[p(`i`,{class:A(S.value.failed?`iconoir-xmark-circle status-error`:`iconoir-check-circle status-done`)},null,2),N(` `+x(S.value.label)+` `,1),S.value.notes?(k(),u(`span`,Oe,`· `+x(S.value.notes),1)):c(``,!0)],64)):(k(),u(E,{key:1},[n[0]||=p(`i`,{class:`iconoir-refresh spinning`},null,-1),n[1]||=N(` Running...`,-1)],64))]),p(`span`,ke,[i.value?.duration?(k(),u(`span`,Ae,x(i.value.duration.toFixed(2))+`s`,1)):c(``,!0)])])),i.value?(k(),u(`div`,{key:1,class:A([`analysis-result-container`,i.value.success?`success`:`failed`])},[i.value.success?c(``,!0):(k(),u(`div`,je,[n[3]||=p(`strong`,null,`Error:`,-1),N(` `+x(i.value.error)+` `,1),i.value.error_backtrace?.length?(k(),u(`details`,Me,[n[2]||=p(`summary`,null,`Show backtrace`,-1),p(`pre`,Ne,x(i.value.error_backtrace.join(`
2
+ import{M as e}from"./mermaid-C3bOamfn.js";import{$ as t,A as n,B as r,E as i,F as a,G as o,H as s,I as c,J as l,L as u,M as d,N as f,P as p,Q as m,T as h,U as g,W as _,X as v,Y as y,a as b,at as x,b as S,c as C,h as w,it as T,j as E,n as D,nt as O,q as k,rt as A,tt as j,w as M,z as N}from"./index-DMhBow5t.js";import{t as P}from"./useHighlight-BH32C7yt.js";import{t as F}from"./usePanZoom-HxgEsqq2.js";import{o as I,t as L}from"./ResourceList-BZOYa68X.js";import{t as R}from"./QueryError-DvspMrsh.js";var z=[`/kinds/`,`/pages/`,`/doc/`];function B(e){let t=i();function n(e){if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let n=e.target.closest(`a[href]`);if(!n||n.target&&n.target!==`_self`)return;let r=n.getAttribute(`href`);if(r?.startsWith(`#`)&&r.length>1){e.preventDefault();let n=t.currentRoute.value;n.hash===r?D(r)?.scrollIntoView({behavior:`smooth`}):t.push({query:n.query,hash:r})}else r&&z.some(e=>r.startsWith(e))&&(e.preventDefault(),t.push(r))}m(e,(e,t)=>{t?.removeEventListener(`click`,n),e?.addEventListener(`click`,n)},{immediate:!0,flush:`post`}),_(()=>{e.value?.removeEventListener(`click`,n)})}var V=null,H=!1;function U(){return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`default`}async function ee(){return V||(V=(await e(()=>import(`./mermaid-C3bOamfn.js`).then(e=>e.t),__vite__mapDeps([0,1]))).default,V.initialize({startOnLoad:!1,theme:U()}),te(),V)}function W(e){e.querySelectorAll(`.mermaid svg`).forEach(e=>{if(e.hasAttribute(`data-panzoom-init`))return;e.setAttribute(`data-panzoom-init`,`true`);let t=e.parentElement;F(e,t)})}function te(){H||(H=!0,window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,async()=>{V&&(V.initialize({startOnLoad:!1,theme:U()}),document.querySelectorAll(`.mermaid[data-mermaid-source]`).forEach(e=>{e.removeAttribute(`data-processed`),e.innerHTML=e.getAttribute(`data-mermaid-source`)}),await V.run(),document.querySelectorAll(`.mermaid`).forEach(e=>{e.querySelectorAll(`svg`).forEach(e=>e.removeAttribute(`data-panzoom-init`)),W(e.parentElement||e)}))}))}async function G(e){let t=e.querySelectorAll(`pre > code.language-mermaid`);if(t.length===0)return;let n=await ee();t.forEach(e=>{let t=e.parentElement,n=document.createElement(`div`);n.className=`mermaid`,n.setAttribute(`data-mermaid-source`,e.textContent),n.textContent=e.textContent,t.parentElement.replaceChild(n,t)}),await n.run(),W(e)}var ne=`/vendor/drawio/viewer.html`,re=`archsight-drawio`,ie=240,ae=4e3,oe=!1;function se(e){return[...document.querySelectorAll(`iframe.drawio-frame`)].find(t=>t.contentWindow===e)}function ce(e,t){let n=document.createElement(`div`);n.className=`drawio-error`,n.setAttribute(`role`,`alert`),n.textContent=t,e.replaceWith(n)}function le(e){let t=e.data;if(e.origin!==window.location.origin||!t||t.channel!==re)return;let n=se(e.source);n&&(t.type===`size`&&Number.isFinite(t.height)?n.style.height=`${Math.min(Math.ceil(t.height),ae)}px`:t.type===`error`&&ce(n,t.message||`The diagram could not be shown.`))}function ue(e,t){let n=document.createElement(`iframe`);return n.className=`drawio-frame`,n.src=`${ne}?src=${encodeURIComponent(e)}`,n.title=t||`draw.io diagram`,n.loading=`lazy`,n.referrerPolicy=`no-referrer`,n.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),n.style.height=`${ie}px`,n}function de(e){let t=document.createElement(`a`);return t.className=`drawio-open`,t.href=e,t.target=`_blank`,t.rel=`noopener`,t.textContent=`Open the .drawio file`,t}function K(e){e&&(oe||=(window.addEventListener(`message`,le),!0),e.querySelectorAll(`.drawio-diagram[data-drawio-src]:not([data-drawio-ready])`).forEach(e=>{let t=e.dataset.drawioSrc;e.dataset.drawioReady=`true`,e.replaceChildren(ue(t,e.dataset.drawioTitle),de(t))}))}var q=e=>(e||``).split(`,`).map(e=>e.trim()).filter(Boolean);function J(e){let t=e[`view/type`]||`list:name+kind`;return{query:e[`view/query`],fields:q(e[`view/fields`]),sort:q(e[`view/sort`]),showKind:t===`list:name+kind`}}var Y=e=>(e||``).split(`,`).filter(Boolean);function X(){let e=j([]);async function t(t){await g();let n=t?[...t.querySelectorAll(`.kind-embed[data-kind][data-name], .view-embed[data-query], .requirements-embed[data-of]`)]:[];e.value=n.map((e,t)=>{if(e.replaceChildren(),e.classList.contains(`requirements-embed`)){let n=e.dataset,r={of:n.of,priority:Y(n.priority),status:Y(n.status)};return{el:e,key:`requirements/${t}`,kind:`Requirements`,name:n.title,spec:r}}if(e.classList.contains(`view-embed`)){let n=e.dataset,r=J({"view/query":n.query,"view/fields":n.fields,"view/sort":n.sort,"view/type":n.type});return{el:e,key:`inline/${t}`,kind:`View`,name:n.title,spec:r}}return{el:e,key:`${e.dataset.kind}/${e.dataset.name}`,kind:e.dataset.kind,name:e.dataset.name}})}return{embeds:e,scanEmbeds:t}}var Z=(e,t)=>`${e} ${t}${e===1?``:`s`}`;function Q(e){if(!e)return null;if(!e.success)return{failed:!0,label:`Failed`,notes:``};let t=(e.sections||[]).filter(e=>e.type===`message`).map(e=>e.level),n=t.filter(e=>e===`error`).length,r=t.filter(e=>e===`warning`).length;return{failed:!1,label:`Completed`,notes:[n&&Z(n,`error`),r&&Z(r,`warning`)].filter(Boolean).join(`, `)}}var fe={key:1,class:`view-loading`,"aria-busy":`true`},pe={key:2,class:`view-results`},me={key:0},he={class:`view-result-meta`},ge=100,_e=b({__name:`ViewResults`,props:{query:String,fields:{type:Array,default:()=>[]},sort:{type:Array,default:()=>[]},showKind:{type:Boolean,default:!0},compact:{type:Boolean,default:!1}},emits:[`loaded`],setup(e,{emit:t}){let n=e,i=t,o=j([]),s=j(0),l=j(0),d=j(!1),h=j(!1),g=j(null),_=0;function v(e,t){return t.length?[...e].sort((e,n)=>{for(let r of t){let t=r.startsWith(`-`),i=t?r.slice(1):r,a=I(e,i)??``,o=I(n,i)??``,s=String(a).localeCompare(String(o),void 0,{numeric:!0});if(s!==0)return t?-s:s}return 0}):e}let y=f(()=>v(o.value,n.sort)),b=f(()=>n.fields.length?`annotations`:`brief`);async function S(){if(n.query){d.value=!0,g.value=null,_=0;try{let e=await M(n.query,{limit:ge,offset:0,output:b.value});o.value=e.instances||[],s.value=e.total||0,l.value=e.query_time_ms||0,_=o.value.length,i(`loaded`,{total:s.value})}catch(e){g.value=e.message}finally{d.value=!1}}}async function C(){if(!(h.value||_>=s.value||!n.query)){h.value=!0;try{let e=(await M(n.query,{limit:ge,offset:_,output:b.value})).instances||[];o.value=[...o.value,...e],_+=e.length}catch{}h.value=!1}}return m(()=>[n.query,n.fields.join(`,`)],S,{immediate:!0}),(t,n)=>g.value?(k(),a(R,{key:0,message:g.value},null,8,[`message`])):d.value?(k(),u(`article`,fe,[...n[0]||=[p(`i`,{class:`iconoir-refresh spinning`},null,-1),N(` Running query... `,-1)]])):e.query?(k(),u(`article`,pe,[e.compact?c(``,!0):(k(),u(`header`,me,[n[1]||=p(`h3`,null,`Results`,-1),p(`span`,he,x(s.value)+` `+x(s.value===1?`item`:`items`)+` in `+x(l.value)+` ms`,1)])),r(L,{instances:y.value,"omit-kind":!e.showKind,fields:e.fields.length?e.fields:null,total:s.value,"loading-more":h.value,embedded:e.compact,onLoadMore:C},null,8,[`instances`,`omit-kind`,`fields`,`total`,`loading-more`,`embedded`])])):c(``,!0)}},[[`__scopeId`,`data-v-8ee7464a`]]),ve=[`innerHTML`],ye=[`innerHTML`],be={key:1},xe=[`innerHTML`],Se={key:1},Ce=[`innerHTML`],we={key:1},Te={key:5,class:`code`},$=b({__name:`AnalysisSection`,props:{section:Object},setup(e){let t=j(null);B(t);let n={error:`xmark-circle`,warning:`warning-triangle`,info:`info-circle`};return(r,i)=>e.section.type===`heading`?(k(),u(`div`,{key:0,class:A([`analysis-heading`,`level-`+e.section.level])},x(e.section.text),3)):e.section.type===`text`?(k(),u(`div`,{key:1,ref_key:`sectionEl`,ref:t,class:`analysis-text`,innerHTML:e.section.content},null,8,ve)):e.section.type===`message`?(k(),u(`div`,{key:2,ref_key:`sectionEl`,ref:t,class:A([`analysis-message`,`message-`+e.section.level])},[p(`i`,{class:A(`iconoir-${n[e.section.level]||`info-circle`}`)},null,2),e.section.message_html==null?(k(),u(`span`,be,x(e.section.message),1)):(k(),u(`span`,{key:0,innerHTML:e.section.message_html},null,8,ye))],2)):e.section.type===`table`?(k(),u(`div`,{key:3,ref_key:`sectionEl`,ref:t,class:`analysis-table-wrapper`},[p(`table`,null,[p(`thead`,null,[p(`tr`,null,[(k(!0),u(E,null,l(e.section.headers,e=>(k(),u(`th`,{key:e},x(e),1))),128))])]),p(`tbody`,null,[(k(!0),u(E,null,l(e.section.rows,(t,n)=>(k(),u(`tr`,{key:n},[(k(!0),u(E,null,l(t,(t,r)=>(k(),u(E,{key:r},[e.section.rows_html?(k(),u(`td`,{key:0,innerHTML:e.section.rows_html[n][r]},null,8,xe)):(k(),u(`td`,Se,x(t),1))],64))),128))]))),128))])])],512)):e.section.type===`list`?(k(),u(`ul`,{key:4,ref_key:`sectionEl`,ref:t,class:`analysis-list`},[(k(!0),u(E,null,l(e.section.items,(t,n)=>(k(),u(E,{key:n},[e.section.items_html?(k(),u(`li`,{key:0,innerHTML:e.section.items_html[n]},null,8,Ce)):(k(),u(`li`,we,x(t),1))],64))),128))],512)):e.section.type===`code`?(k(),u(`pre`,Te,[p(`code`,{class:A(e.section.lang?`language-`+e.section.lang:``)},x(e.section.content),3)])):c(``,!0)}},[[`__scopeId`,`data-v-1a903fe7`]]),Ee={key:0,class:`analysis-bar`},De={class:`status-indicator`},Oe={key:0,class:`status-notes`,title:`Reported by the analysis`},ke={class:`analysis-bar-end`},Ae={key:0,class:`duration`,title:`Run time`},je={key:0,class:`analysis-error-details`},Me={key:0},Ne={class:`code`},Pe={key:1,class:`analysis-output`},Fe={key:1,open:``},Ie=[`title`],Le={class:`analysis-group-title`},Re={key:2,class:`analysis-results-placeholder`},ze=b({__name:`AnalysisResults`,props:{name:String,compact:{type:Boolean,default:!1}},emits:[`state`],setup(e,{emit:t}){let n=e,r=t,i=j(null),s=j(!1),d=j(null);async function h(){s.value=!0;try{i.value=await C(n.name)}catch(e){i.value={success:!1,error:e.message,sections:[]}}finally{s.value=!1}}function _(e){let t=[],n={title:null,sections:[]};for(let r of e)r.type===`heading`&&r.level===0?((n.title||n.sections.length)&&t.push(n),n={title:r.text,sections:[]}):n.sections.push(r);return(n.title||n.sections.length)&&t.push(n),t}let v={error:`xmark-circle`,warning:`warning-triangle`};function y(e){let t=e.sections.filter(e=>e.type===`message`).map(e=>e.level);return[`error`,`warning`].find(e=>t.includes(e))}let b=f(()=>i.value?.sections?.length?_(i.value.sections):[]),S=f(()=>Q(i.value)),w=f(()=>b.value.some(e=>e.title)),T=f(()=>b.value.filter(e=>e.title).length>1);return m([i,s],()=>r(`state`,{result:i.value,executing:s.value}),{immediate:!0}),m(i,async()=>{await g(),d.value&&P(d.value)}),o(h),(t,n)=>(k(),u(`article`,{ref_key:`rootEl`,ref:d,class:A([`analysis-execution`,{compact:e.compact}])},[e.compact?c(``,!0):(k(),u(`div`,Ee,[p(`span`,De,[S.value?(k(),u(E,{key:0},[p(`i`,{class:A(S.value.failed?`iconoir-xmark-circle status-error`:`iconoir-check-circle status-done`)},null,2),N(` `+x(S.value.label)+` `,1),S.value.notes?(k(),u(`span`,Oe,`· `+x(S.value.notes),1)):c(``,!0)],64)):(k(),u(E,{key:1},[n[0]||=p(`i`,{class:`iconoir-refresh spinning`},null,-1),n[1]||=N(` Running...`,-1)],64))]),p(`span`,ke,[i.value?.duration?(k(),u(`span`,Ae,x(i.value.duration.toFixed(2))+`s`,1)):c(``,!0)])])),i.value?(k(),u(`div`,{key:1,class:A([`analysis-result-container`,i.value.success?`success`:`failed`])},[i.value.success?c(``,!0):(k(),u(`div`,je,[n[3]||=p(`strong`,null,`Error:`,-1),N(` `+x(i.value.error)+` `,1),i.value.error_backtrace?.length?(k(),u(`details`,Me,[n[2]||=p(`summary`,null,`Show backtrace`,-1),p(`pre`,Ne,x(i.value.error_backtrace.join(`
3
3
  `)),1)])):c(``,!0)])),i.value.sections?.length?(k(),u(`div`,Pe,[w.value?(k(!0),u(E,{key:1},l(b.value,(e,t)=>(k(),u(E,{key:t},[e.title?T.value?(k(),u(`details`,Fe,[p(`summary`,null,[N(x(e.title)+` `,1),y(e)?(k(),u(`i`,{key:0,class:A([`iconoir-${v[y(e)]}`,`status-${y(e)}`]),title:y(e)},null,10,Ie)):c(``,!0)]),(k(!0),u(E,null,l(e.sections,(e,n)=>(k(),a($,{key:`g${t}-${n}`,section:e},null,8,[`section`]))),128))])):(k(),u(E,{key:2},[p(`h3`,Le,x(e.title),1),(k(!0),u(E,null,l(e.sections,(e,n)=>(k(),a($,{key:`g${t}-${n}`,section:e},null,8,[`section`]))),128))],64)):(k(!0),u(E,{key:0},l(e.sections,(e,t)=>(k(),a($,{key:`u${t}`,section:e},null,8,[`section`]))),128))],64))),128)):(k(!0),u(E,{key:0},l(b.value[0]?.sections,(e,t)=>(k(),a($,{key:t,section:e},null,8,[`section`]))),128))])):c(``,!0)],2)):s.value&&e.compact?(k(),u(`div`,Re,` Running analysis... `)):c(``,!0)],2))}},[[`__scopeId`,`data-v-21d7d6d8`]]),Be={class:`requirements-table`},Ve={key:0},He={class:`requirement-status`},Ue=[`title`],We={key:1,class:`view-empty-value`},Ge={class:`requirement-story`},Ke=[`innerHTML`],qe={key:1,class:`view-empty-value`},Je={key:0,class:`requirement-by`},Ye=[`title`],Xe=b({__name:`RequirementsTable`,props:{items:{type:Array,default:()=>[]},priorityLink:{type:Function,required:!0},showBy:{type:Boolean,default:!1}},setup(e){function n(e){switch(e){case`implemented`:return`iconoir-check-circle`;case`partial`:return`iconoir-half-moon`;case`planned`:return`iconoir-calendar`;default:return`iconoir-circle`}}return(i,o)=>{let s=v(`router-link`);return k(),u(`table`,Be,[p(`thead`,null,[p(`tr`,null,[o[0]||=p(`th`,null,null,-1),o[1]||=p(`th`,null,`Name`,-1),o[2]||=p(`th`,null,`Priority`,-1),o[3]||=p(`th`,null,`Story`,-1),e.showBy?(k(),u(`th`,Ve,`Realized by`)):c(``,!0)])]),p(`tbody`,null,[(k(!0),u(E,null,l(e.items,i=>(k(),u(`tr`,{key:i.name},[p(`td`,He,[p(`i`,{class:A([[n(i.status),`status-${i.status}`],`requirement-status-icon`]),title:i.status},null,10,Ue)]),p(`td`,null,[r(s,{to:{name:`instance`,params:{kind:`MotivationRequirement`,instance:i.name}}},{default:t(()=>[N(x(i.name),1)]),_:2},1032,[`to`])]),p(`td`,null,[i.priority?(k(),a(s,{key:0,class:`badge badge-info`,to:e.priorityLink(i.priority)},{default:t(()=>[N(x(i.priority),1)]),_:2},1032,[`to`])):(k(),u(`span`,We,`-`))]),p(`td`,Ge,[i.story?(k(),u(`div`,{key:0,innerHTML:i.story},null,8,Ke)):(k(),u(`span`,qe,`-`))]),e.showBy?(k(),u(`td`,Je,[p(`ul`,null,[(k(!0),u(E,null,l(i.by,e=>(k(),u(`li`,{key:`${e.kind}/${e.name}`},[p(`i`,{class:A([[n(e.status),`status-${e.status}`],`requirement-status-icon`]),title:e.status},null,10,Ye),r(s,{to:{name:`instance`,params:{kind:e.kind,instance:e.name}}},{default:t(()=>[N(x(e.name),1)]),_:2},1032,[`to`])]))),128))])])):c(``,!0)]))),128))])])}}},[[`__scopeId`,`data-v-327154ce`]]),Ze={class:`kind-embed-box`},Qe={class:`kind-embed-source`},$e={key:0,class:`kind-embed-title`},et={key:2,class:`kind-embed-kind`},tt={key:3,class:`kind-embed-count`},nt={key:1,class:`kind-embed-status`},rt={key:0,class:`kind-embed-error`,role:`alert`},it={key:1,class:`kind-embed-loading`,"aria-busy":`true`},at={key:1,class:`kind-embed-empty`},ot={key:3,class:`kind-embed-loading`,"aria-busy":`true`},st={key:1,class:`kind-embed-empty`},ct={key:1,class:`kind-embed-empty`},lt=[`innerHTML`],ut={key:1,class:`kind-embed-empty`},dt=b({__name:`EmbeddedKind`,props:{kind:String,name:String,spec:{type:Object,default:null}},setup(e){let n=e,r=j(null),i=j(null),o=j(null),l=j(null),d=j(null),h=j(null);B(h);let _=s(`kinds`,j(null)),y=[`View`,`Analysis`,`Requirements`],b=f(()=>!n.spec&&!y.includes(n.kind));async function C(){d.value=null,i.value=null,l.value=null;try{let e=await S(n.spec);d.value=e.requirements,i.value=e.total}catch(e){l.value=e.message}}async function T(){if(n.kind===`Requirements`)return C();if(!n.spec){r.value=null,i.value=null,o.value=null,l.value=null;try{r.value=await w(n.kind,n.name)}catch(e){l.value=e.message}}}m(()=>[n.kind,n.name,JSON.stringify(n.spec)],T,{immediate:!0});let D=f(()=>r.value?.metadata?.annotations||{}),O=f(()=>n.spec||J(D.value)),M=f(()=>{let e=o.value?.result,t=Q(e);if(!t)return null;let n=t.notes?`${t.label}, ${t.notes}`:t.label;return{failed:t.failed,label:e.duration?`${n} ${e.duration.toFixed(2)}s`:n}}),P=f(()=>!!D.value[`analysis/script`]),F=f(()=>D.value[`architecture/description`]);m(F,async()=>{await g(),h.value&&(G(h.value),K(h.value))});let I=f(()=>_.value?.kinds?.find(e=>e.kind===n.kind)),L=f(()=>b.value?I.value?`iconoir-${I.value.icon}`:`iconoir-page`:{View:`iconoir-table-rows`,Requirements:`iconoir-list`}[n.kind]||`iconoir-play`),R=f(()=>n.name||(n.kind===`Requirements`?`Requirements`:`View`)),z=f(()=>new Set((d.value||[]).flatMap(e=>e.by.map(e=>`${e.kind}/${e.name}`))).size>1),V=e=>`/search?q=${encodeURIComponent(`MotivationRequirement: requirement/priority == "${e}"`)}`;return(n,s)=>{let f=v(`router-link`);return k(),u(`div`,Ze,[p(`p`,Qe,[p(`i`,{class:A(L.value)},null,2),e.spec?(k(),u(`span`,$e,x(R.value),1)):(k(),a(f,{key:1,to:{name:`instance`,params:{kind:e.kind,instance:e.name}},title:`Open ${e.kind.toLowerCase()} ${e.name}`},{default:t(()=>[N(x(e.name),1)]),_:1},8,[`to`,`title`])),b.value?(k(),u(`span`,et,x(e.kind),1)):c(``,!0),i.value==null?c(``,!0):(k(),u(`span`,tt,`(`+x(i.value)+` `+x(i.value===1?`item`:`items`)+`)`,1)),o.value?(k(),u(E,{key:4},[M.value?(k(),u(`span`,{key:0,class:A([`kind-embed-status`,{failed:M.value.failed}])},`(`+x(M.value.label)+`)`,3)):o.value.executing?(k(),u(`span`,nt,`(Running...)`)):c(``,!0)],64)):c(``,!0)]),l.value?(k(),u(`div`,rt,x(l.value),1)):e.kind===`Requirements`&&!d.value?(k(),u(`p`,it,[...s[2]||=[p(`i`,{class:`iconoir-refresh spinning`},null,-1),N(` Loading requirements... `,-1)]])):e.kind===`Requirements`?(k(),u(E,{key:2},[d.value.length?(k(),a(Xe,{key:0,items:d.value,"priority-link":V,"show-by":z.value},null,8,[`items`,`show-by`])):(k(),u(`p`,at,`No requirements`))],64)):!r.value&&!e.spec?(k(),u(`p`,ot,[s[3]||=p(`i`,{class:`iconoir-refresh spinning`},null,-1),N(` Loading `+x(e.kind.toLowerCase())+`... `,1)])):e.kind===`View`?(k(),u(E,{key:4},[O.value.query?(k(),a(_e,{key:0,query:O.value.query,fields:O.value.fields,sort:O.value.sort,"show-kind":O.value.showKind,compact:``,onLoaded:s[0]||=e=>i.value=e.total},null,8,[`query`,`fields`,`sort`,`show-kind`])):(k(),u(`p`,st,`No query defined`))],64)):e.kind===`Analysis`?(k(),u(E,{key:5},[P.value?(k(),a(ze,{key:0,name:e.name,compact:``,onState:s[1]||=e=>o.value=e},null,8,[`name`])):(k(),u(`p`,ct,`No script defined for this analysis`))],64)):(k(),u(E,{key:6},[F.value?(k(),u(`div`,{key:0,ref_key:`descriptionEl`,ref:h,class:`kind-embed-description prose`,innerHTML:F.value},null,8,lt)):(k(),u(`p`,ut,`No description`))],64))])}}},[[`__scopeId`,`data-v-3ba9331a`]]),ft={class:`page-head`},pt={key:1,class:`breadcrumb`},mt={key:1},ht={key:0,class:`page-toc`,"aria-label":`On this page`},gt=[`href`,`aria-current`,`onClick`],_t=[`innerHTML`],vt={key:1,class:`page-foot`},yt={__name:`WikiPage`,props:{title:String,html:String,breadcrumb:{type:Array,default:()=>[]},toc:{type:Array,default:()=>[]},backlinks:{type:Array,default:()=>[]},editName:{type:String,default:null}},setup(e){let s=e,b=h(),S=i(),C=j(null),w=j(null),M=f(()=>Math.min(...s.toc.map(e=>e.level)||[1]));B(C);let{embeds:F,scanEmbeds:I}=X();async function L(){await g(),C.value&&(P(C.value),G(C.value),K(C.value)),I(C.value),D(b.hash)?.scrollIntoView(),z()}let R=null;function z(){R=null;let e=s.toc.map(e=>e.id),t=e[0]||null;for(let n of e){let e=document.getElementById(n);e&&e.getBoundingClientRect().top<=80&&(t=n)}window.innerHeight+window.scrollY>=document.documentElement.scrollHeight-2&&window.scrollY>0&&e.length&&(t=e[e.length-1]),w.value=t}function V(){R===null&&(R=requestAnimationFrame(z))}o(()=>window.addEventListener(`scroll`,V,{passive:!0,capture:!0})),_(()=>{window.removeEventListener(`scroll`,V,{capture:!0}),R!==null&&cancelAnimationFrame(R)}),m(()=>s.html,L,{immediate:!0,flush:`post`});function H(e){let t=`#${e}`;b.hash===t?D(t)?.scrollIntoView({behavior:`smooth`}):S.push({query:b.query,hash:t}),w.value=e}return(i,o)=>{let s=v(`router-link`);return k(),u(`article`,{class:A([`wiki-page`,{"has-toc":e.toc.length}])},[p(`div`,ft,[y(i.$slots,`actions`),e.editName&&!i.$slots.actions?(k(),a(s,{key:0,class:`page-edit`,to:`/kinds/Page/instances/${encodeURIComponent(e.editName)}/edit`,title:`Edit page`,"aria-label":`Edit page`},{default:t(()=>[...o[0]||=[p(`i`,{class:`iconoir-edit-pencil`},null,-1)]]),_:1},8,[`to`])):c(``,!0),e.breadcrumb.length?(k(),u(`div`,pt,[(k(!0),u(E,null,l(e.breadcrumb,(e,n)=>(k(),u(E,{key:n},[e.page?(k(),a(s,{key:0,to:{name:`page`,params:{name:e.page}}},{default:t(()=>[N(x(e.title),1)]),_:2},1032,[`to`])):(k(),u(`span`,mt,x(e.title),1))],64))),128))])):c(``,!0),p(`h1`,null,x(e.title),1),y(i.$slots,`properties`)]),e.toc.length?(k(),u(`aside`,ht,[o[1]||=p(`span`,{class:`toc-title`},`On this page`,-1),p(`ul`,null,[(k(!0),u(E,null,l(e.toc,e=>(k(),u(`li`,{key:e.id},[p(`a`,{href:`#${e.id}`,style:T({paddingLeft:`${12+(e.level-M.value)*12}px`}),"aria-current":w.value===e.id?`location`:void 0,onClick:n(t=>H(e.id),[`prevent`])},x(e.text),13,gt)]))),128))])])):c(``,!0),p(`div`,{ref_key:`bodyEl`,ref:C,class:`page-body prose`,innerHTML:e.html},null,8,_t),(k(!0),u(E,null,l(O(F),e=>(k(),a(d,{key:e.key,to:e.el},[r(dt,{kind:e.kind,name:e.name,spec:e.spec},null,8,[`kind`,`name`,`spec`])],8,[`to`]))),128)),e.backlinks.length?(k(),u(`div`,vt,[o[2]||=p(`strong`,null,`Linked from`,-1),p(`ul`,null,[(k(!0),u(E,null,l(e.backlinks,e=>(k(),u(`li`,{key:e.name},[r(s,{to:{name:`page`,params:{name:e.name}}},{default:t(()=>[N(x(e.title),1)]),_:2},1032,[`to`])]))),128))])])):c(``,!0)],2)}}};export{_e as a,K as c,ze as i,G as l,dt as n,X as o,Xe as r,J as s,yt as t,B as u};