code wiki / (root) / nx_js_urlfold.nx

nx_js_urlfold.nx source

↩ module page · 258 lines · 13474 B

1// nx_js_urlfold.nx -- SOVEREIGN JS constant/template URL folder (operator 2026-07-08: "get to state of the art 2// that we can see and harvest the media as part of the browser capabilities" -- no manual network capture). The 3// hard class of page (Unity/heavy-JS ad loaders) never emits <img>/<script src> in the HTML; it CONSTRUCTS asset 4// URLs at runtime from string constants: const FALLBACK_HOST='client.x.com'; const BUILD_PATH='release_builds/..'; 5// let host=FALLBACK_HOST; const baseUrl=`https://${host}/${BUILD_PATH}`; ... `${baseUrl}/rc/style.css`. 6// This reconstructs those URLs by READING (not executing) the JS: it collects `const|let|var NAME = <strexpr>` 7// assignments, resolves them to literals by iterated substitution (so baseUrl folds through host+BUILD_PATH), 8// then folds EVERY backtick template + the resolved consts to concrete strings and emits the URL-ish ones. No JS 9// engine, no segfault. Supported value forms: 'lit' / "lit" / `tmpl${IDENT}` / IDENT / A + 'x' + B (concat). 10// nx_js_fold_urls(js,len, obuf,ooff[],olen[], maxn) -> count (urls written into obuf, spans in ooff/olen) 11// NOTE: the resolved const table is a STRUCT (JTab*) so juf_fold/juf_lookup stay <=6 args -- an 11-arg juf_fold 12// returned a clobbered value on the x86 lane (measured 2026-07-08: literal fold returned 4230893 not 23). 13// license_tier: ORIGINAL 14import "nx_syscalls.nx" 15const JUF_MAGIC_8192: i64 = 8192 16 17const JUF_MAXT: i64 = 512 // max consts / assignments 18const JUF_TBUF: i64 = 131072 // resolved-value byte pool 19const JUF_PASSES: i64 = 10 // fixpoint iterations 20 21// resolved-constant table. names are spans INTO the js source (noff/nlen); values are spans into vbuf (voff/vlen). 22struct JTab { vbuf: *u8, noff: *i64, nlen: *i64, voff: *i64, vlen: *i64, js: *u8, cnt: i64, used: i64 } 23const JTAB_BYTES: i64 = 64 24 25// [A-Za-z0-9_$] 26func juf_isident(c: i64) -> i64 { if c>=48 { if c<=57 {return 1} } if c>=65 { if c<=90 {return 1} } if c>=97 { if c<=122 {return 1} } if c==95 {return 1} if c==36 {return 1} return 0 } 27// span-equal: a[aoff..+alen) vs b[boff..+blen) 28func juf_span_eq(a: *u8, aoff: i64, alen: i64, b: *u8, boff: i64, blen: i64) -> i64 { if alen != blen { return 0 } var i: i64=0; while i<alen { if a[aoff+i]!=b[boff+i] { return 0 } i=i+1 } return 1 } 29// lookup query name js[qoff..+qlen) in T -> index or -1 (all names are spans into T.js) 30func juf_lookup(qoff: i64, qlen: i64, T: *JTab) -> i64 { let js: *u8 = T.js; var i: i64=0; while i<T.cnt { if juf_span_eq(js, qoff, qlen, js, T.noff[i], T.nlen[i])==1 { return i } i=i+1 } return 0 - 1 } 31// URL-ish? starts '/' OR contains "://" 32func juf_urlish(s: *u8, off: i64, len: i64) -> i64 { 33 if len < 3 { return 0 } 34 if s[off]==(47 as u8) { return 1 } 35 var i: i64 = off; let end: i64 = off + len 36 while i + 2 < end { if s[i]==(58 as u8) { if s[i+1]==(47 as u8) { if s[i+2]==(47 as u8) { return 1 } } } i=i+1 } 37 return 0 38} 39// copy T value #idx into out at o (bounded by ocap); return new o 40func juf_put(T: *JTab, idx: i64, out: *u8, o: i64, ocap: i64) -> i64 { var w: i64=o; var m: i64=0; let vb: *u8=T.vbuf; while m < T.vlen[idx] { if w<ocap-1 { out[w]=vb[T.voff[idx]+m]; w=w+1 } m=m+1 } return w } 41 42// write one byte into out (bounded) 43func juf_wr(out: *u8, opos: *i64, ocap: i64, ch: u8) -> i64 { if opos[0] < ocap-1 { out[opos[0]]=ch; opos[0]=opos[0]+1 } return 0 } 44 45// consume ONE value piece starting at i0 (a 'lit / "lit / `tmpl / IDENT), writing folded bytes into out via 46// opos. returns the index just past the piece, or -1 (unresolved ident / unsupported). Flat by design -- the 47// deep else-nest form miscompiled on the x86 lane (a ' literal fell through to the tail return, 2026-07-08). 48func juf_piece(js: *u8, i0: i64, end: i64, T: *JTab, out: *u8, opos: *i64, ocap: i64) -> i64 { 49 let c: i64 = js[i0] as i64 50 if c == 39 { // ' literal 51 var j: i64 = i0 + 1; var d: i64 = 0 52 while d == 0 { if j >= end { d = 1 } else { if js[j]==(39 as u8) { d = 1 } else { juf_wr(out, opos, ocap, js[j]); j=j+1 } } } 53 return j + 1 54 } 55 if c == 34 { // " literal 56 var j2: i64 = i0 + 1; var d2: i64 = 0 57 while d2 == 0 { if j2 >= end { d2 = 1 } else { if js[j2]==(34 as u8) { d2 = 1 } else { juf_wr(out, opos, ocap, js[j2]); j2=j2+1 } } } 58 return j2 + 1 59 } 60 if c == 96 { // ` template with ${IDENT} 61 var j3: i64 = i0 + 1; var d3: i64 = 0 62 while d3 == 0 { 63 if j3 >= end { d3 = 1 } else { 64 let cc: i64 = js[j3] as i64 65 if cc == 96 { d3 = 1 } else { 66 var handled: i64 = 0 67 if cc == 36 { if j3+1 < end { if js[j3+1]==(123 as u8) { 68 var k: i64 = j3 + 2; let noff: i64 = k; var rd: i64 = 1 69 while rd == 1 { if k>=end { rd=0 } else { if juf_isident(js[k] as i64)==1 { k=k+1 } else { rd=0 } } } 70 let idx: i64 = juf_lookup(noff, k-noff, T) 71 if idx < 0 { return 0 - 1 } 72 opos[0] = juf_put(T, idx, out, opos[0], ocap) 73 if k < end { if js[k]==(125 as u8) { k=k+1 } } 74 j3 = k; handled = 1 75 } } } 76 if handled == 0 { juf_wr(out, opos, ocap, js[j3]); j3=j3+1 } 77 } 78 } 79 } 80 return j3 + 1 81 } 82 if juf_isident(c) == 1 { // bare identifier operand 83 var j4: i64 = i0; var rd4: i64 = 1 84 while rd4 == 1 { if j4>=end { rd4=0 } else { if juf_isident(js[j4] as i64)==1 { j4=j4+1 } else { rd4=0 } } } 85 let idx4: i64 = juf_lookup(i0, j4-i0, T) 86 if idx4 < 0 { return 0 - 1 } 87 opos[0] = juf_put(T, idx4, out, opos[0], ocap) 88 return j4 89 } 90 return 0 - 1 // unsupported token 91} 92 93// fold value expr js[soff..soff+slen) into out using T; return outlen or -1. FLAT dispatch (see juf_piece note). 94func juf_fold(js: *u8, soff: i64, slen: i64, T: *JTab, out: *u8, ocap: i64) -> i64 { 95 let opos: *i64 = sys_mmap(8) as *i64; opos[0] = 0 96 var i: i64 = soff 97 let end: i64 = soff + slen 98 var err: i64 = 0 99 while i < end { 100 if err == 1 { i = end } else { 101 let c: i64 = js[i] as i64 102 if c == 32 { i = i + 1 } else { if c == 9 { i = i + 1 } else { if c == 13 { i = i + 1 } else { if c == 10 { i = i + 1 } else { if c == 43 { i = i + 1 } else { 103 let ni: i64 = juf_piece(js, i, end, T, out, opos, ocap) 104 if ni < 0 { err = 1 } else { i = ni } 105 } } } } } 106 } 107 } 108 if err == 1 { return 0 - 1 } 109 return opos[0] 110} 111 112// keyword match at i: js[i..i+klen)==kw, preceding char non-ident, following char space/tab 113func juf_kw_at(js: *u8, i: i64, len: i64, kw: *u8, klen: i64) -> i64 { 114 if i + klen >= len { return 0 } 115 var k: i64 = 0; while k < klen { if js[i+k] != kw[k] { return 0 } k=k+1 } 116 if i > 0 { if juf_isident(js[i-1] as i64)==1 { return 0 } } 117 let nc: i64 = js[i+klen] as i64 118 if nc == 32 { return 1 } 119 if nc == 9 { return 1 } 120 return 0 121} 122 123// append src[soff..+slen) to obuf (dedup vs already-emitted). returns new count. 124func juf_emit(obuf: *u8, ooff: *i64, olen: *i64, count: i64, maxn: i64, opos: *i64, src: *u8, soff: i64, slen: i64) -> i64 { 125 if count >= maxn { return count } 126 if slen <= 0 { return count } 127 var i: i64 = 0 128 while i < count { 129 if olen[i] == slen { 130 var eq: i64 = 1; var k: i64 = 0 131 while k < slen { if obuf[ooff[i]+k] != src[soff+k] { eq=0; k=slen } else { k=k+1 } } 132 if eq == 1 { return count } 133 } 134 i = i + 1 135 } 136 var m: i64 = 0 137 while m < slen { obuf[opos[0]+m] = src[soff+m]; m=m+1 } 138 ooff[count] = opos[0]; olen[count] = slen 139 opos[0] = opos[0] + slen 140 return count + 1 141} 142 143// THE FOLD. 144func nx_js_fold_urls(js: *u8, len: i64, obuf: *u8, ooff: *i64, olen: *i64, maxn: i64) -> i64 { 145 // assignment raw list: name span + value-expr span (both into js) 146 let anoff: *i64 = sys_mmap(8*JUF_MAXT) as *i64 147 let anlen: *i64 = sys_mmap(8*JUF_MAXT) as *i64 148 let avoff: *i64 = sys_mmap(8*JUF_MAXT) as *i64 149 let avlen: *i64 = sys_mmap(8*JUF_MAXT) as *i64 150 var acnt: i64 = 0 151 // resolved table (struct so folders stay small-arg) 152 let T: *JTab = sys_mmap(JTAB_BYTES) as *JTab 153 T.vbuf = sys_mmap(JUF_TBUF) 154 T.noff = sys_mmap(8*JUF_MAXT) as *i64 155 T.nlen = sys_mmap(8*JUF_MAXT) as *i64 156 T.voff = sys_mmap(8*JUF_MAXT) as *i64 157 T.vlen = sys_mmap(8*JUF_MAXT) as *i64 158 T.js = js 159 T.cnt = 0 160 T.used = 0 161 let scratch: *u8 = sys_mmap(JUF_MAGIC_8192) 162 163 // ---- scan assignments ---- 164 var i: i64 = 0 165 while i < len { 166 if acnt >= JUF_MAXT { i = len } else { 167 var kw: i64 = 0 168 if juf_kw_at(js, i, len, "const" as *u8, 5)==1 { kw = 5 } 169 if juf_kw_at(js, i, len, "let" as *u8, 3)==1 { kw = 3 } 170 if juf_kw_at(js, i, len, "var" as *u8, 3)==1 { kw = 3 } 171 if kw > 0 { 172 var p: i64 = i + kw 173 var sk0: i64 = 1 174 while sk0==1 { if p>=len { sk0=0 } else { let c: i64 = js[p] as i64; if c==32 { p=p+1 } else { if c==9 { p=p+1 } else { sk0=0 } } } } 175 let noff: i64 = p 176 var rd: i64 = 1 177 while rd==1 { if p>=len { rd=0 } else { if juf_isident(js[p] as i64)==1 { p=p+1 } else { rd=0 } } } 178 let nlen: i64 = p - noff 179 var sd: i64 = 1 180 while sd==1 { if p>=len { sd=0 } else { let c2: i64=js[p] as i64; if c2==32 { p=p+1 } else { if c2==9 { p=p+1 } else { sd=0 } } } } 181 if nlen > 0 { if p < len { if js[p]==(61 as u8) { 182 var eqok: i64 = 1 183 if p+1 < len { if js[p+1]==(61 as u8) { eqok=0 } if js[p+1]==(62 as u8) { eqok=0 } } 184 if eqok == 1 { 185 p = p + 1 186 var sd2: i64 = 1 187 while sd2==1 { if p>=len { sd2=0 } else { let c3: i64=js[p] as i64; if c3==32 { p=p+1 } else { if c3==9 { p=p+1 } else { sd2=0 } } } } 188 let voff: i64 = p 189 var q: i64 = p; var qs: i64 = 0; var instr: i64 = 0; var strc: i64 = 0 190 while qs == 0 { 191 if q >= len { qs = 1 } else { 192 let cq: i64 = js[q] as i64 193 if instr == 1 { if cq == strc { instr = 0 } q = q + 1 } 194 else { 195 if cq==39 { instr=1; strc=39; q=q+1 } else { 196 if cq==34 { instr=1; strc=34; q=q+1 } else { 197 if cq==96 { instr=1; strc=96; q=q+1 } else { 198 if cq==59 { qs=1 } else { 199 if cq==10 { qs=1 } else { q=q+1 } } } } } 200 } 201 } 202 } 203 anoff[acnt]=noff; anlen[acnt]=nlen; avoff[acnt]=voff; avlen[acnt]=q-voff; acnt=acnt+1 204 i = q 205 } else { i = i + kw } 206 } else { i = i + kw } } else { i = i + kw } } 207 else { i = i + kw } 208 } else { i = i + 1 } 209 } 210 } 211 212 // ---- resolve to a fixpoint ---- 213 var pass: i64 = 0 214 while pass < JUF_PASSES { 215 var added: i64 = 0 216 var a: i64 = 0 217 while a < acnt { 218 if juf_lookup(anoff[a], anlen[a], T) < 0 { 219 let fl: i64 = juf_fold(js, avoff[a], avlen[a], T, scratch, JUF_MAGIC_8192) 220 if fl >= 0 { 221 if T.cnt < JUF_MAXT { if T.used + fl < JUF_TBUF { 222 let vb: *u8 = T.vbuf 223 var m: i64 = 0 224 while m < fl { vb[T.used+m]=scratch[m]; m=m+1 } 225 let cc: i64 = T.cnt 226 T.noff[cc]=anoff[a]; T.nlen[cc]=anlen[a]; T.voff[cc]=T.used; T.vlen[cc]=fl 227 T.used = T.used + fl; T.cnt = cc + 1; added = added + 1 228 } } 229 } 230 } 231 a = a + 1 232 } 233 if added == 0 { pass = JUF_PASSES } else { pass = pass + 1 } 234 } 235 236 // ---- emit: (1) resolved consts URL-ish, (2) every backtick template folded ---- 237 var count: i64 = 0 238 let opos: *i64 = sys_mmap(8) as *i64; opos[0] = 0 239 let vbuf: *u8 = T.vbuf 240 var t: i64 = 0 241 while t < T.cnt { 242 if count < maxn { if juf_urlish(vbuf, T.voff[t], T.vlen[t]) == 1 { count = juf_emit(obuf, ooff, olen, count, maxn, opos, vbuf, T.voff[t], T.vlen[t]) } } 243 t = t + 1 244 } 245 var b: i64 = 0 246 while b < len { 247 if count >= maxn { b = len } else { 248 if js[b] == (96 as u8) { 249 var e: i64 = b + 1; var fe: i64 = 0 250 while fe == 0 { if e >= len { fe = 1 } else { if js[e]==(96 as u8) { fe = 1 } else { e = e + 1 } } } 251 let fl2: i64 = juf_fold(js, b, (e - b) + 1, T, scratch, JUF_MAGIC_8192) 252 if fl2 > 0 { if juf_urlish(scratch, 0, fl2) == 1 { count = juf_emit(obuf, ooff, olen, count, maxn, opos, scratch, 0, fl2) } } 253 b = e + 1 254 } else { b = b + 1 } 255 } 256 } 257 return count 258}