import fs from 'node:fs' import crypto from 'node:crypto' import postcss from 'postcss' const file='.tmp/rea-css-recovered/src-CyXHA0IC.css' const css=fs.readFileSync(file,'utf8'),sha=crypto.createHash('sha256').update(css).digest('hex') if(sha!=='a5e26b537bb50323aefbf25abddad52e288dd3868598be8d255d70886fe77cfe')throw Error('Unexpected pinned REA table CSS source') const rules=[] postcss.parse(css).walkRules(rule=>{ const selectors=rule.selectors.filter(selector=>/\.cr-table-block|^\.cr-markdown (?:th|td)(?:\b|>)/.test(selector)) if(!selectors.length)return const selected=rule.clone();selected.selectors=selectors.map(selector=>selector.includes('.cr-markdown')?selector:'.cr-markdown '+selector) let tree=selected for(let parent=rule.parent;parent?.type==='atrule';parent=parent.parent){const outer=parent.clone({nodes:[]});outer.append(tree);tree=outer} rules.push(tree.toString()) }) fs.writeFileSync('src/renderer/src/workbuddy/markdown/source-table.css',`/* WorkBuddy 5.8.2; REA ev_377c8790468b3c67dad8577aabb327f98d3140659f0fffdbabfcff5a40cc9e94. * src-CyXHA0IC.css SHA-256 ${sha}; table selectors scoped to .cr-markdown. * Native geometry evidence ev_d6e6920ff4e47f73a182fac5312c5f02393366a035445d18c8a6733a8c8a11ed. */\n`+rules.join('\n')+'\n') console.log(JSON.stringify({sha,rules:rules.length}))