forma-arch 0.11.1 → 0.11.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.
- package/README.md +8 -5
- package/lib/viewer/c4-hologram.html +7 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,16 +9,19 @@ Forma is the companion to `arbiter`: arbiter governs the process, Forma shows th
|
|
|
9
9
|
guarantees the picture matches reality.
|
|
10
10
|
|
|
11
11
|
**[▶ Live demo](https://LucaDominici.github.io/forma/)** — **not** this repo. It is `haben`, a
|
|
12
|
-
private 53-package Go application, generated by forma at haben commit `
|
|
13
|
-
53 packages,
|
|
14
|
-
feature matrix.
|
|
12
|
+
private 53-package Go application, generated by forma at haben commit `4c9b6880`: six domains over
|
|
13
|
+
53 packages, 193 edges read from real `import` blocks, and box text quoted from that repo's own
|
|
14
|
+
feature matrix. Its five-checkpoint architecture timeline is governed by haben's current product
|
|
15
|
+
boundary: the 63-node AS-IS baseline grows cumulatively to 66 nodes and 196 edges, while the final
|
|
16
|
+
operational checkpoint honestly reports no architecture change. A tool proving itself on its own
|
|
17
|
+
28 nodes proves nothing you care about.
|
|
15
18
|
|
|
16
19
|
What you are looking at is checked, not asserted: at that commit `node scripts/presentable.mjs`
|
|
17
20
|
exits 0 on the model — every level under 24 boxes, every box carrying prose rather than a file
|
|
18
21
|
count, every level with more than one box drawing at least one arrow — and `forma check` exits 0
|
|
19
22
|
against haben's source at the same commit. The curation that turns 53 flat packages into six
|
|
20
|
-
domains is one human decision, checked in
|
|
21
|
-
the commands to rebuild it.
|
|
23
|
+
domains and maps the governed boundary to typed timeline patches is one human decision, checked in
|
|
24
|
+
at [`docs/demo/curate.mjs`](docs/demo/curate.mjs) with the commands to rebuild it.
|
|
22
25
|
|
|
23
26
|
The one thing the demo does not do is regenerate itself: haben is private, so Pages publishes a
|
|
24
27
|
snapshot committed from a local run rather than cloning it in CI. Nothing automated will notice
|
|
@@ -763,11 +763,16 @@ function edgePath(a,b){
|
|
|
763
763
|
}
|
|
764
764
|
function levelName(l){return (STR.lvlNames&&STR.lvlNames[l])||l||"—";}
|
|
765
765
|
function cssv(v){try{return getComputedStyle(document.documentElement).getPropertyValue(v).trim()||"#2b6e8a";}catch(e){return "#2b6e8a";}}
|
|
766
|
+
function detailState(n,timeline){
|
|
767
|
+
// Function prose says what a box is. It is not also a checkpoint state: unchanged timeline nodes
|
|
768
|
+
// without curated `current` used to repeat the same sentence under both labels.
|
|
769
|
+
return timeline?(n.current||""):(n.current||n.func||n.description||"");
|
|
770
|
+
}
|
|
766
771
|
|
|
767
772
|
function showDetail(n){
|
|
768
773
|
if(n&&n.__catalog)return showRoster(n);
|
|
769
|
-
var src=srcOf(n),cur=n
|
|
770
|
-
var
|
|
774
|
+
var timeline=!!(BASE&&BASE.timeline),src=srcOf(n),cur=detailState(n,timeline),showSrc=src&&String(cur).indexOf(src)<0;
|
|
775
|
+
var change=timeline?nodeChange(n.id):null;
|
|
771
776
|
$("detail").innerHTML='<span class="cl" id="dc">'+esc(STR.detClose)+'</span><h3>'+esc(n.name)+' <span class="cat">· '+esc(n.category||n.kind||"")+(n.tech?" · "+esc(n.tech):"")+'</span></h3>'
|
|
772
777
|
+(n.func?'<div class="row"><span class="lbl">'+esc(STR.detFunc)+'</span><span class="func">'+esc(n.func)+'</span></div>':'')
|
|
773
778
|
+(cur&&(timeline||cur!==n.func)?'<div class="row"><span class="lbl">'+esc(timeline?STR.detCheckpoint:STR.detNow)+'</span><span class="now">'+esc(cur)+'</span></div>':'')
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "forma-arch",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.3",
|
|
4
4
|
"description": "Forma — present your architecture instead of slides. An interactive, stack-agnostic C4 explorer (context → container → component → leaf) generated from your code and kept true to it by a deterministic drift check.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"architecture",
|