archsight 0.4.3 → 0.5.0

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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +4 -0
  3. data/docs/configuration.md +5 -0
  4. data/docs/diagram.md +5 -0
  5. data/docs/index.md.erb +1 -0
  6. data/docs/pdf-export.md +118 -0
  7. data/lib/archsight/analysis/typst_renderer.rb +25 -78
  8. data/lib/archsight/cli.rb +37 -0
  9. data/lib/archsight/diagram/graph/attributes.rb +3 -1
  10. data/lib/archsight/diagram/graph/node.rb +18 -1
  11. data/lib/archsight/diagram/layout/expander.rb +75 -3
  12. data/lib/archsight/diagram/layout/rank_arranger.rb +3 -1
  13. data/lib/archsight/markdown.rb +17 -1
  14. data/lib/archsight/pdf/cache.rb +41 -0
  15. data/lib/archsight/pdf/compiler.rb +69 -0
  16. data/lib/archsight/pdf/dependency_graph.rb +127 -0
  17. data/lib/archsight/pdf/document.rb +227 -0
  18. data/lib/archsight/pdf/embeds.rb +134 -0
  19. data/lib/archsight/pdf/images.rb +94 -0
  20. data/lib/archsight/pdf/markdown.rb +217 -0
  21. data/lib/archsight/pdf/remote_image.rb +122 -0
  22. data/lib/archsight/pdf/resource_sheet.rb +129 -0
  23. data/lib/archsight/pdf/sample_document.rb +67 -0
  24. data/lib/archsight/pdf/tables.rb +72 -0
  25. data/lib/archsight/pdf/theme.rb +125 -0
  26. data/lib/archsight/pdf/typst/archsight.typ +152 -0
  27. data/lib/archsight/pdf/typst.rb +45 -0
  28. data/lib/archsight/pdf.rb +30 -0
  29. data/lib/archsight/resources/config.rb +147 -0
  30. data/lib/archsight/version.rb +1 -1
  31. data/lib/archsight/web/api/openapi/spec.yaml +230 -0
  32. data/lib/archsight/web/api/pdf_helpers.rb +46 -0
  33. data/lib/archsight/web/api/routes.rb +30 -0
  34. data/lib/archsight/web/public/vue/DocPage-D3QtnrmO.js +1 -0
  35. data/lib/archsight/web/public/vue/EditorPage-lZyG6dVt.js +35 -0
  36. data/lib/archsight/web/public/vue/ErrorPage-BhdYGZJk.js +2 -0
  37. data/lib/archsight/web/public/vue/GraphView-CoqAjFdR.js +1 -0
  38. data/lib/archsight/web/public/vue/HomePage-B7SaXVeb.js +2 -0
  39. data/lib/archsight/web/public/vue/{InstanceRouter-CJSkGdBG.css → InstanceRouter-BCKbW-Wp.css} +1 -1
  40. data/lib/archsight/web/public/vue/InstanceRouter-DJJn9fhP.js +1 -0
  41. data/lib/archsight/web/public/vue/KindList-UqMajqbf.js +1 -0
  42. data/lib/archsight/web/public/vue/PageView-CirIXjW6.js +1 -0
  43. data/lib/archsight/web/public/vue/QueryError-BIJH6gQC.js +1 -0
  44. data/lib/archsight/web/public/vue/ResourceList-761vG1Jw.js +2 -0
  45. data/lib/archsight/web/public/vue/SearchResults-BPHa6yhK.js +1 -0
  46. data/lib/archsight/web/public/vue/WikiPage-Bi7dzY2h.js +3 -0
  47. data/lib/archsight/web/public/vue/{WikiPage-TpmM1VAF.css → WikiPage-CuUi4C8v.css} +1 -1
  48. data/lib/archsight/web/public/vue/{index-DMhBow5t.js → index-BF4zUlWZ.js} +2 -2
  49. data/lib/archsight/web/public/vue/index-BO59Fbpf.css +1 -0
  50. data/lib/archsight/web/public/vue.html +2 -2
  51. metadata +35 -17
  52. data/lib/archsight/web/public/vue/DocPage-L0GzDFiV.js +0 -1
  53. data/lib/archsight/web/public/vue/EditorPage-B3iNbh1u.js +0 -35
  54. data/lib/archsight/web/public/vue/ErrorPage-Lro5vwhy.js +0 -2
  55. data/lib/archsight/web/public/vue/GraphView-BRKwxa--.js +0 -1
  56. data/lib/archsight/web/public/vue/HomePage-DKgI1DXr.js +0 -2
  57. data/lib/archsight/web/public/vue/InstanceRouter-CX6qxVTm.js +0 -1
  58. data/lib/archsight/web/public/vue/KindList-C556gf23.js +0 -1
  59. data/lib/archsight/web/public/vue/PageView-DAqHjL1x.js +0 -1
  60. data/lib/archsight/web/public/vue/QueryError-DvspMrsh.js +0 -1
  61. data/lib/archsight/web/public/vue/ResourceList-BZOYa68X.js +0 -2
  62. data/lib/archsight/web/public/vue/SearchResults-DaaOPG3t.js +0 -1
  63. data/lib/archsight/web/public/vue/WikiPage-Bfx92Iig.js +0 -3
  64. data/lib/archsight/web/public/vue/index-B_YGrWD8.css +0 -1
@@ -5,10 +5,10 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Archsight</title>
7
7
  <link rel="icon" href="/favicon.ico" />
8
- <script type="module" crossorigin src="/vue/index-DMhBow5t.js"></script>
8
+ <script type="module" crossorigin src="/vue/index-BF4zUlWZ.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/vue/rolldown-runtime-COiEfhsA.js">
10
10
  <link rel="modulepreload" crossorigin href="/vue/mermaid-C3bOamfn.js">
11
- <link rel="stylesheet" crossorigin href="/vue/index-B_YGrWD8.css">
11
+ <link rel="stylesheet" crossorigin href="/vue/index-BO59Fbpf.css">
12
12
  </head>
13
13
  <body>
14
14
  <div id="app"></div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: archsight
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vincent Landgraf
@@ -235,6 +235,7 @@ files:
235
235
  - docs/licenses.md
236
236
  - docs/modeling.md
237
237
  - docs/pages.md
238
+ - docs/pdf-export.md
238
239
  - docs/search.md
239
240
  - docs/togaf.md
240
241
  - docs/tool.md
@@ -423,6 +424,21 @@ files:
423
424
  - lib/archsight/openapi.rb
424
425
  - lib/archsight/page_loader.rb
425
426
  - lib/archsight/page_tree.rb
427
+ - lib/archsight/pdf.rb
428
+ - lib/archsight/pdf/cache.rb
429
+ - lib/archsight/pdf/compiler.rb
430
+ - lib/archsight/pdf/dependency_graph.rb
431
+ - lib/archsight/pdf/document.rb
432
+ - lib/archsight/pdf/embeds.rb
433
+ - lib/archsight/pdf/images.rb
434
+ - lib/archsight/pdf/markdown.rb
435
+ - lib/archsight/pdf/remote_image.rb
436
+ - lib/archsight/pdf/resource_sheet.rb
437
+ - lib/archsight/pdf/sample_document.rb
438
+ - lib/archsight/pdf/tables.rb
439
+ - lib/archsight/pdf/theme.rb
440
+ - lib/archsight/pdf/typst.rb
441
+ - lib/archsight/pdf/typst/archsight.typ
426
442
  - lib/archsight/query.rb
427
443
  - lib/archsight/query/ast.rb
428
444
  - lib/archsight/query/errors.rb
@@ -447,6 +463,7 @@ files:
447
463
  - lib/archsight/resources/business_product.rb
448
464
  - lib/archsight/resources/business_role.rb
449
465
  - lib/archsight/resources/compliance_evidence.rb
466
+ - lib/archsight/resources/config.rb
450
467
  - lib/archsight/resources/data_object.rb
451
468
  - lib/archsight/resources/implementation_deliverable.rb
452
469
  - lib/archsight/resources/implementation_event.rb
@@ -486,6 +503,7 @@ files:
486
503
  - lib/archsight/web/api/json_helpers.rb
487
504
  - lib/archsight/web/api/openapi/spec.yaml
488
505
  - lib/archsight/web/api/page_helpers.rb
506
+ - lib/archsight/web/api/pdf_helpers.rb
489
507
  - lib/archsight/web/api/requirements_helpers.rb
490
508
  - lib/archsight/web/api/routes.rb
491
509
  - lib/archsight/web/application.rb
@@ -2884,35 +2902,35 @@ files:
2884
2902
  - lib/archsight/web/public/vendor/redoc/redoc.standalone.js
2885
2903
  - lib/archsight/web/public/vendor/redoc/redoc.standalone.js.LICENSE.txt
2886
2904
  - lib/archsight/web/public/vue.html
2887
- - lib/archsight/web/public/vue/DocPage-L0GzDFiV.js
2888
- - lib/archsight/web/public/vue/EditorPage-B3iNbh1u.js
2905
+ - lib/archsight/web/public/vue/DocPage-D3QtnrmO.js
2889
2906
  - lib/archsight/web/public/vue/EditorPage-CbG4mc9T.css
2907
+ - lib/archsight/web/public/vue/EditorPage-lZyG6dVt.js
2908
+ - lib/archsight/web/public/vue/ErrorPage-BhdYGZJk.js
2890
2909
  - lib/archsight/web/public/vue/ErrorPage-Ck9izEUS.css
2891
- - lib/archsight/web/public/vue/ErrorPage-Lro5vwhy.js
2892
- - lib/archsight/web/public/vue/GraphView-BRKwxa--.js
2893
2910
  - lib/archsight/web/public/vue/GraphView-BvWAbUAl.css
2894
- - lib/archsight/web/public/vue/HomePage-DKgI1DXr.js
2895
- - lib/archsight/web/public/vue/InstanceRouter-CJSkGdBG.css
2896
- - lib/archsight/web/public/vue/InstanceRouter-CX6qxVTm.js
2897
- - lib/archsight/web/public/vue/KindList-C556gf23.js
2911
+ - lib/archsight/web/public/vue/GraphView-CoqAjFdR.js
2912
+ - lib/archsight/web/public/vue/HomePage-B7SaXVeb.js
2913
+ - lib/archsight/web/public/vue/InstanceRouter-BCKbW-Wp.css
2914
+ - lib/archsight/web/public/vue/InstanceRouter-DJJn9fhP.js
2915
+ - lib/archsight/web/public/vue/KindList-UqMajqbf.js
2898
2916
  - lib/archsight/web/public/vue/KindList-yYcRT2BV.css
2899
2917
  - lib/archsight/web/public/vue/PageView-B93woeN3.css
2900
- - lib/archsight/web/public/vue/PageView-DAqHjL1x.js
2918
+ - lib/archsight/web/public/vue/PageView-CirIXjW6.js
2901
2919
  - lib/archsight/web/public/vue/QueryError-3EqjpbyV.css
2902
- - lib/archsight/web/public/vue/QueryError-DvspMrsh.js
2903
- - lib/archsight/web/public/vue/ResourceList-BZOYa68X.js
2920
+ - lib/archsight/web/public/vue/QueryError-BIJH6gQC.js
2921
+ - lib/archsight/web/public/vue/ResourceList-761vG1Jw.js
2904
2922
  - lib/archsight/web/public/vue/ResourceList-D75O87zG.css
2923
+ - lib/archsight/web/public/vue/SearchResults-BPHa6yhK.js
2905
2924
  - lib/archsight/web/public/vue/SearchResults-BV6UHriJ.css
2906
- - lib/archsight/web/public/vue/SearchResults-DaaOPG3t.js
2907
- - lib/archsight/web/public/vue/WikiPage-Bfx92Iig.js
2908
- - lib/archsight/web/public/vue/WikiPage-TpmM1VAF.css
2925
+ - lib/archsight/web/public/vue/WikiPage-Bi7dzY2h.js
2926
+ - lib/archsight/web/public/vue/WikiPage-CuUi4C8v.css
2909
2927
  - lib/archsight/web/public/vue/architecture-WOLXFQ4H-BGN-TV5r.js
2910
2928
  - lib/archsight/web/public/vue/cynefin-EF2NZ3EQ-CZd6g_tq.js
2911
2929
  - lib/archsight/web/public/vue/eventmodeling-K75KTNOO-CYnbEx8O.js
2912
2930
  - lib/archsight/web/public/vue/gitGraph-VSP46ZUC-DialfQSk.js
2913
2931
  - lib/archsight/web/public/vue/graphviz-1lWBhpEX.js
2914
- - lib/archsight/web/public/vue/index-B_YGrWD8.css
2915
- - lib/archsight/web/public/vue/index-DMhBow5t.js
2932
+ - lib/archsight/web/public/vue/index-BF4zUlWZ.js
2933
+ - lib/archsight/web/public/vue/index-BO59Fbpf.css
2916
2934
  - lib/archsight/web/public/vue/info-OHQRW6UA-BuhOW7ss.js
2917
2935
  - lib/archsight/web/public/vue/katex-B_JcIwqj.js
2918
2936
  - lib/archsight/web/public/vue/mermaid-C3bOamfn.js
@@ -1 +0,0 @@
1
- import{F as e,L as t,P as n,Q as r,d as i,q as a,t as o,tt as s}from"./index-DMhBow5t.js";import{t as c}from"./WikiPage-Bfx92Iig.js";var l={key:1},u={__name:`DocPage`,props:{filename:String},setup(u){let d=u,f=s(null);function p(e,t){let n=new DOMParser().parseFromString(e,`text/html`).body,r=n.querySelector(`:scope > article`)||n,i=r.querySelector(`h1`),a=i?.textContent.trim()||t.split(`/`).pop().replace(/[-_]/g,` `);i?.remove();let o=[...r.querySelectorAll(`h2[id], h3[id], h4[id]`)].map(e=>({level:Number(e.tagName[1]),id:e.id,text:e.textContent.trim()})),s=[{title:`Documentation`}];return t.startsWith(`resources/`)&&s.push({title:`Resource types`}),{title:a,html:r.innerHTML,toc:o.length>=2?o:[],breadcrumb:s}}async function m(){let e=await i(d.filename);f.value=e?p(e,d.filename):{title:`Not found`,html:`<p>Documentation not found.</p>`,toc:[],breadcrumb:[{title:`Documentation`}]},o(f.value.title)}return r(()=>d.filename,m,{immediate:!0}),(r,i)=>f.value?(a(),e(c,{key:0,title:f.value.title,html:f.value.html,breadcrumb:f.value.breadcrumb,toc:f.value.toc},null,8,[`title`,`html`,`breadcrumb`,`toc`])):(a(),t(`article`,l,[...i[0]||=[n(`p`,null,`Loading...`,-1)]]))}};export{u as default};