
Security News
/Research
Fake Corepack Site Distributes Infostealer and Proxyware to Developers
A fake corepack.org site is impersonating the Node.js tool and delivers an infostealer and proxyware to developers who download it.
@geometra/core
Advanced tools
DOM-free UI framework core. Build declarative interfaces rendered to Canvas, terminal, or server-streamed layouts.
npm install @geometra/core
signal, computed, effect, batch -- reactive primitivesbox, text, image, scene3d -- element constructorscreateApp -- application entry pointtoSemanticHTML -- SEO-friendly HTML generationtoAccessibilityTree -- runtime accessibility tree from geometryinsertInputText, backspaceInput, deleteInput -- text-input editing primitivesgetInputCaretGeometry -- caret x/y/height from measured text linescreateTextInputHistory, undoTextInputHistory -- undo/redo state helperstransition, spring, createTweenTimeline, createPropertyTimeline, setMotionPreference -- animation utilitiescreateApp returns a Promise<App> and takes a renderer (for example @geometra/renderer-canvas in the browser) plus optional root layout size in AppOptions. Wire pointer/keyboard to app.dispatch / app.dispatchKey from your host (see demos/local-canvas).
import { box, text, createApp, signal } from '@geometra/core'
import { CanvasRenderer } from '@geometra/renderer-canvas'
const canvas = document.querySelector('canvas') as HTMLCanvasElement
const renderer = new CanvasRenderer({ canvas })
const count = signal(0)
function view() {
return box({ width: 300, height: 200, padding: 20, gap: 10 }, [
text({ text: `Count: ${count.value}`, font: 'bold 24px sans-serif', lineHeight: 30 }),
box({ width: 100, height: 40, backgroundColor: '#07f', onClick: () => count.set(count.peek() + 1) }, [
text({ text: 'Click me', font: '16px sans-serif', lineHeight: 20, color: '#fff' }),
]),
])
}
createApp(view, renderer, { width: 300, height: 200 }).then(() => {
// Mounted — forward pointer/keyboard from your host for interactivity (see demos/local-canvas).
})
TextInputState is immutable editor state: { nodes: string[], selection }.selection is node-local and may be reversed; helpers normalize internally.insertInputText/replaceInputSelection always collapse caret after replacement.backspaceInput/deleteInput delete active selections first, then apply boundary merge behavior across nodes.moveInputCaret supports range extension via extendSelection=true.moveInputCaret and moveInputCaretByWord accept an optional reading direction (ltr default, rtl supported) for horizontal key semantics.moveInputCaretToLineBoundary also accepts optional reading direction so Home/End semantics can follow visual direction in RTL contexts.getInputCaretGeometry is defined for collapsed selections with measured line metrics; expanded ranges return null.dir: 'ltr' | 'rtl' | 'auto' on box(), text(), and image() props.dir='auto' currently inherits from parent direction (script-level auto detection is deferred).dir inherits from parent; root fallback is ltr.toAccessibilityTree(tree, layout) emits deterministic role/name/bounds/focusable nodes for geometry-rendered UIs.semantic.tag, semantic.role, semantic.ariaLabel, semantic.alt) are preserved when projecting accessibility and semantic HTML output.FAQs
DOM-free UI framework core: components, signals, reconciler
The npm package @geometra/core receives a total of 3,432 weekly downloads. As such, @geometra/core popularity was classified as popular.
We found that @geometra/core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
/Research
A fake corepack.org site is impersonating the Node.js tool and delivers an infostealer and proxyware to developers who download it.

Research
/Security News
A large-scale campaign abused GitHub Actions in compromised repositories to exploit CVE-2026-41940 in cPanel and WHM and steal server credentials.

Security News
Five frontier LLMs generated the same nonexistent package names, leaving 53 available for potential slopsquatting across PyPI and npm.