Carbonium is a zero-runtime-dependency DOM manipulation micro-library (~1 kB) that exposes a single `$` function. In the browser, `$` resolves a CSS selector to a NodeList and wraps it in a JavaScript Proxy, so the returned value can be used both as an array of elements and as a single DOM element: property reads return the first match, property writes broadcast to every match, and DOM/array methods are proxied to support fluent chaining. HTML strings starting with `<` are parsed with DOMParser for element creation. The package ships ESM, minified ESM, and IIFE bundles built with Rollup, plus TypeScript declarations. The architecture is intentionally minimal: one source module (`src/carbonium.ts`) with a hand-written Proxy handler. The primary data flow is selector/HTML string -> `querySelectorAll`/`DOMParser` -> NodeList -> Proxy -> per-element property/method dispatch. There are no runtime dependencies; development tooling uses TypeScript, Rollup, ESLint, and Playwright. The tests inject the built IIFE into real Chromium and Firefox pages and cover chaining, filtering, classList, style methods, event listeners, and canvas access. Code inspection reveals a gap between README and behavior: direct property assignment on `.style` (e.g., `$('.indent').style.left = '40px'`) writes to `document.body.style` rather than the matched elements, because the `set` trap falls through to `Reflect.set` on the body's CSSStyleDeclaration. Method-style APIs such as `style.setProperty` and `classList.add` work as advertised because they use the captured `currentListNodelist`. The implementation also uses module-level mutable state for style/classList/relList proxies, which is acceptable for synchronous single-threaded browser code but brittle if a proxy is stored and reused across other `$` calls.
hmpl-js is a published TypeScript npm library that implements a compact client-side template language. The actual runtime code compiles HTML strings containing `{{#request}}` block helpers into template functions; invoking those functions issues `fetch` requests, replaces placeholder comment nodes (`<!--hmpl...-->`) with server-returned HTML, and supports indicators, request status binding, event callbacks, intervals, sanitization, and memoization. The library exposes a clean typed API via `compile`, `stringify`, and the request/instance contracts in `src/types.ts`, and it is covered by a test suite running on jsdom with DOMPurify, node-fetch, and nock-based mock servers. The implementation is concentrated in one large `src/main.ts`, which keeps the dependency surface small but makes isolated changes more risky than a modular architecture would. The repository also contains the official documentation site (`www/app`, built with Astro/Starlight and Vue components) and a Jekyll-powered blog (`www/blog`) with many technical articles and SEO structured data. These are documentation/marketing assets rather than library runtime code. They introduce noticeable drift: some blog posts still demonstrate the old v2 syntax, the hardcoded structured-data version is 3.0.5 while the package is at 3.2.1, and the README-declared Node engine (`>=10.12.0`) no longer matches the modern async/AbortSignal usage in the code. Overall this is a solid, well-tested micro-library with a clear public API, but it carries medium maintainability debt from its monolithic compiler and duplicated content.