code wiki / _hdl_build / nx_sitegen_freeform_gate.nx

nx_sitegen_freeform_gate.nx source

↩ module page · 82 lines · 6349 B

1// nx_sitegen_freeform_gate.nx -- gate for the FREE-FORM CANVAS profile (nx_sitegen_freeform). Proves the 2// power-user tier: elements are PLACED FREELY (x/y/width honored), every element type renders (heading/text/ 3// button/image), text AND href are injection-ESCAPED (no attribute breakout), the doc is portable (rebuilds 4// byte-identical), and a 2nd canvas is genuinely different (data-driven, not one-off). Positive + negative 5// controls. Appends a CMSGATE row to knowledge/status/cms_gate.log on all-pass. license_tier: ORIGINAL 6import "nx_sitegen_freeform.nx" 7import "nx_syscalls.nx" 8 9func fgw(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 10func fgn(v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48 as u8;k=1}; while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(1,bb,k); return 0 } 11func fgcat(dst: *u8, off: i64, s: *u8) -> i64 { var o: i64=off; var k: i64=0; while s[k]!=(0 as u8){dst[o]=s[k];o=o+1;k=k+1} return o } 12func fgcatn(dst: *u8, off: i64, v: i64) -> i64 { var o: i64=off; let t: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m}; var k: i64=0; if m==0{t[0]=48 as u8;k=1}; while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1}; var i: i64=0; while i<k{dst[o]=t[k-1-i];o=o+1;i=i+1} return o } 13func fgrow(id: i64, ok: i64, what: *u8) -> i64 { fgw("FFROW " as *u8); fgn(id); fgw(" " as *u8); if ok==1 { fgw("PASS " as *u8) } else { fgw("FAIL " as *u8) } fgw(what); fgw("\n" as *u8); return ok } 14func fglen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n } 15func fghas(hay: *u8, hn: i64, needle: *u8) -> i64 { 16 var nl: i64=0; while needle[nl]!=(0 as u8){nl=nl+1} 17 if nl==0 { return 1 } if nl>hn { return 0 } 18 let last: i64=hn-nl; var i: i64=0 19 while i<=last { var j: i64=0; var hit: i64=1; while j<nl { if (hay[i+j] as i64)!=(needle[j] as i64){hit=0;j=nl} if hit==1{j=j+1} } if hit==1 { return 1 } i=i+1 } 20 return 0 21} 22func fgeq(a: *u8, an: i64, b: *u8, bn: i64) -> i64 { if an!=bn { return 0 } var i: i64=0; while i<an { if (a[i] as i64)!=(b[i] as i64){return 0} i=i+1 } return 1 } 23 24func main() -> i64 { 25 let doc: *u8 = "title|My Free Canvas\nel|heading|50|40|400|Welcome to my page|\nel|text|50|120|500|This is placed freely on the canvas.|\nel|button|50|300|200|Contact us|#contact\nel|image|600|40|300|A photo|/img/photo.jpg\n" as *u8 26 let out: *u8 = sys_mmap(262144) 27 let out2: *u8 = sys_mmap(262144) 28 let ln: i64 = se_build_freeform(doc, fglen(doc), out, 262143) 29 30 var rows: i64 = 0 31 var pass: i64 = 0 32 var ok: i64 = 0 33 34 // R0: builds + title + heading content 35 ok = 0; if ln>0 { if fghas(out,ln,"My Free Canvas" as *u8)==1 { if fghas(out,ln,"Welcome to my page" as *u8)==1 { ok=1 } } } 36 rows=rows+1; pass=pass+fgrow(0, ok, "free-form canvas builds from data (title + heading)" as *u8) 37 38 // R1: every element type rendered 39 ok = 0; if fghas(out,ln,"This is placed freely on the canvas." as *u8)==1 { if fghas(out,ln,"<a class=\"btn\" href=\"#contact\"" as *u8)==1 { if fghas(out,ln,"<img src=\"/img/photo.jpg\"" as *u8)==1 { if fghas(out,ln,"<h2>Welcome to my page</h2>" as *u8)==1 { ok=1 } } } } 40 rows=rows+1; pass=pass+fgrow(1, ok, "all element types render (heading/text/button/image)" as *u8) 41 42 // R2: placement honored (absolute positioning at the given x/y/width) 43 ok = 0; if fghas(out,ln,"position:absolute" as *u8)==1 { if fghas(out,ln,"left:50px;top:40px;width:400px" as *u8)==1 { if fghas(out,ln,"left:600px;top:40px;width:300px" as *u8)==1 { ok=1 } } } 44 rows=rows+1; pass=pass+fgrow(2, ok, "placement honored: elements positioned freely at x/y/width" as *u8) 45 46 // R3 (NEG): hostile heading text escaped 47 let dmal: *u8 = "title|X\nel|heading|0|0|100|<script>alert(1)</script>|\n" as *u8 48 let lm: i64 = se_build_freeform(dmal, fglen(dmal), out2, 262143) 49 ok = 0; if lm>0 { if fghas(out2,lm,"<script>alert(1)" as *u8)==0 { if fghas(out2,lm,"&lt;script&gt;alert(1)" as *u8)==1 { ok=1 } } } 50 rows=rows+1; pass=pass+fgrow(3, ok, "NEG: hostile heading text escaped (no raw <script>)" as *u8) 51 52 // R4 (NEG): hostile href escaped -- no attribute breakout 53 let dh: *u8 = "title|X\nel|button|0|0|100|Click|x\"><script>alert(2)</script>\n" as *u8 54 let lh: i64 = se_build_freeform(dh, fglen(dh), out2, 262143) 55 ok = 0; if lh>0 { if fghas(out2,lh,"\"><script>alert(2)" as *u8)==0 { if fghas(out2,lh,"&lt;script&gt;alert(2)" as *u8)==1 { ok=1 } } } 56 rows=rows+1; pass=pass+fgrow(4, ok, "NEG: hostile href escaped (no attribute breakout)" as *u8) 57 58 // R5: deterministic / portable -- same doc rebuilds byte-identical 59 let l2: i64 = se_build_freeform(doc, fglen(doc), out2, 262143) 60 ok = fgeq(out, ln, out2, l2) 61 rows=rows+1; pass=pass+fgrow(5, ok, "portable+deterministic: same doc rebuilds byte-identical" as *u8) 62 63 // R6: a 2nd different canvas is genuinely different (data-driven, no bleed) 64 let d2: *u8 = "title|Other\nel|heading|10|10|200|A Totally Different Page|\n" as *u8 65 let l3: i64 = se_build_freeform(d2, fglen(d2), out2, 262143) 66 ok = 0; if fghas(out2,l3,"A Totally Different Page" as *u8)==1 { if fghas(out2,l3,"Welcome to my page" as *u8)==0 { ok=1 } } 67 rows=rows+1; pass=pass+fgrow(6, ok, "2nd different canvas, no bleed from the 1st (data-driven)" as *u8) 68 69 fgw("NX-SITEGEN-FREEFORM-GATE rows=" as *u8); fgn(rows); fgw(" pass=" as *u8); fgn(pass); fgw("\n" as *u8) 70 if pass == rows { 71 let line: *u8 = sys_mmap(256) 72 var off: i64 = fgcat(line, 0, "CMSGATE row=nx_sitegen_freeform site-builder-freeform-canvas rows=" as *u8) 73 off = fgcatn(line, off, rows); off = fgcat(line, off, " pass=" as *u8); off = fgcatn(line, off, pass) 74 off = fgcat(line, off, " verdict=PASS (free placement + escaped + portable; structural gate relaxed by design)\n" as *u8) 75 let gf: i64 = sys_openat_append("knowledge/status/cms_gate.log" as *u8, 0x1a4) 76 if gf >= 0 { sys_write(gf, line, off); sys_close(gf) } 77 fgw("NX-SITEGEN-FREEFORM-GATE verdict=PASS -- free-form canvas profile: governed + portable free placement\n" as *u8) 78 sys_exit(0); return 0 79 } 80 fgw("NX-SITEGEN-FREEFORM-GATE verdict=FAIL -- NOT recorded (no fake-green)\n" as *u8) 81 sys_exit(1); return 1 82}