#js
Public notes from activescott tagged with #js
Monday, October 5, 2026
Saturday, September 12, 2026
@microsoft/tui-test - npm
TUI Test is a framework for testing terminal applications. It provides a rich API for writing tests that interact with a terminal application across macOS, Linux, and Windows with a wide range of shells. It is built to be fast, reliable, and easy to use.
chalk/chalk: đź–Ť Terminal string styling done right
Terminal string styling done right
sindresorhus/ora: Elegant terminal spinner
Elegant terminal spinner
sindresorhus/yocto-spinner: Tiny terminal spinner
prompts - npm
Lightweight, beautiful and user-friendly interactive prompts
>_ Easy to use CLI prompts to enquire users for informationâ–Ś
- Simple: prompts has no big dependencies nor is it broken into a dozen tiny modules that only work well together.
- User friendly: prompt uses layout and colors to create beautiful cli interfaces.
- Promised: uses promises and
async/await. No callback hell.- Flexible: all prompts are independent and can be used on their own.
- Testable: provides a way to submit answers programmatically.
- Unified: consistent experience across all prompts.
Lightweight, beautiful and user-friendly interactive prompts
>_ Easy to use CLI prompts to enquire users for informationâ–Ś
- Simple: prompts has no big dependencies nor is it broken into a dozen tiny modules that only work well together.
- User friendly: prompt uses layout and colors to create beautiful cli interfaces.
- Promised: uses promises and
async/await. No callback hell.- Flexible: all prompts are independent and can be used on their own.
- Testable: provides a way to submit answers programmatically.
- Unified: consistent experience across all prompts.
Sunday, August 30, 2026
fastmail/Squire: The rich text editor for arbitrary HTML.
Squire is an HTML5 rich text editor, which provides powerful cross-browser normalisation in a flexible lightweight package (only 16KB of JS after minification and gzip, with no dependencies!).
It was designed to handle email composition for the Fastmail web app. The most important consequence of this (and where Squire differs from most other modern rich text editors) is that it must handle arbitrary HTML, because it may be used to forward or quote emails from third-parties and must be able to preserve their HTML without breaking the formatting. This means that it can't use a more structured (but limited) internal data model (as most other modern HTML editors do) and the HTML remains the source-of-truth. The other consequence is excellent handling of multiple levels of blockquotes.
Friday, August 14, 2026
blueberrycongee/codemirror-live-markdown
Obsidian-style Live Preview for CodeMirror 6 — A modular plugin collection that hides Markdown syntax when you're not editing it.
kenforthewin/atomic-editor: CodeMirror 6 markdown editor with Obsidian-style inline live preview.
CodeMirror 6 markdown editor with Obsidian-style inline live preview.
Saturday, August 8, 2026
Tauri 2.0 | Tauri
Tauri is a framework for building tiny, fast binaries for all major desktop and mobile platforms. Developers can integrate any frontend framework that compiles to HTML, JavaScript, and CSS for building their user experience while leveraging languages such as Rust, Swift, and Kotlin for backend logic when needed.
Friday, August 7, 2026
Build optimized websites quickly, focus on your content | Docusaurus
⚡️ Docusaurus will help you ship a beautiful documentation site in no time.
đź’¸ Building a custom tech stack is expensive. Instead, focus on your content and just write Markdown files.
Wednesday, August 5, 2026
ChainDrop supply chain compromise: Anatomy of a self-propagating worm | Microsoft Security Blog
Microsoft Threat Intelligence identified a large-scale npm supply chain attack affecting more than 400 packages across multiple unrelated publishers, including packages associated with major enterprise software ecosystems such as keyv, flat-cache, cache-manager, and others. The malicious releases contain a Mini Shai-Hulud variant, a self-propagating credential-stealing worm delivered through a large, heavily obfuscated Bun-based JavaScript payload. The malware typically executes automatically through an npm preinstall lifecycle hook before package installation completes.
Once executed, the malware searches developer workstations and continuous integration and continuous delivery (CI/CD) environments for npm, GitHub, cloud, and infrastructure credentials. It uses recovered identities to authenticate to npm, GitHub, Amazon Web Services (AWS), Kubernetes, and HashiCorp Vault, enabling it to enumerate packages, repositories, workflow secrets, cloud parameters, and secret-store values. Collected data is encrypted and transmitted through an attacker-controlled HTTPS endpoint, with GitHub repositories serving as a fallback exfiltration channel.
The payload’s most significant capability is automated propagation. After obtaining an npm publishing token, it enumerates packages available to the compromised identity, downloads their latest tarballs, inserts the malware and setup loader, adds a preinstall hook, increments the patch version, and republishes the modified packages. The malware can also use stolen GitHub credentials to inject Claude and Visual Studio Code configuration files into repositories, establishing persistence and creating an additional developer-to-developer infection path.
In this blog, we’re sharing our analysis of this supply chain attack, along with protection, detection, amd hunting guidance. Organizations that installed an affected package with lifecycle scripts enabled should treat the associated developer workstation or build runner as potentially compromised. Investigations should prioritize credentials accessible to the affected identity, unauthorized npm releases, unexpected repository or workflow modifications, suspicious cloud and secret-store access, and artifacts produced by affected build systems. Organizations should revoke and rotate exposed credentials from a known-clean environment and rebuild affected systems and downstream artifacts from trusted sources.
Evidence points towards stolen maintainer credentials as the attack vector for initial compromise. Later propagation used stolen npm publishing tokens and, in targeted workflows, GitHub Actions OIDC publishing access.
Friday, July 31, 2026
Introduction
FlyDrive is a file storage library for Node.js. It provides a unified API to interact with the local file system and cloud storage solutions like S3, R2, and GCS.
Drive can be an excellent fit for applications that use cloud storage services to manage user-uploaded files. With Drive:
- You get a unified API for various storage services, including S3, R2, Digital Ocean spaces, GCS, and your local file system.
- Extensible API to add custom storage drivers.
- Unified exception handling.
- Baked-in security primitives to prevent common attacks like Path travesal.
Friday, July 24, 2026
Milkdown
A plugin driven framework to build WYSIWYG Markdown editor.
Thursday, July 23, 2026
Cloudserver | Zenko
CloudServer (formerly S3 Server) is an open-source object storage project to enable on-premises S3-based application development and data deployment choice.
Friday, May 22, 2026
Push API - Web APIs | MDN
The Push API gives web applications the ability to receive messages pushed to them from a server, whether or not the web app is in the foreground, or even currently loaded, on a user agent. This lets developers deliver asynchronous notifications and updates to users that opt in, resulting in better engagement with timely new content.
Friday, May 8, 2026
Introducing @supabase/server
With @supabase/server you just declare who can call your endpoint and get a fully initialized context back:
User-scoped Supabase client Admin client with service role access Verified user identity JWT claims Built-in request/auth helpers
Monday, April 13, 2026
OpenAI Compatible Providers
You can use the OpenAI Compatible Provider package to use language model providers that implement the OpenAI API.
Below we focus on the general setup and provider instance creation. You can also write a custom provider package leveraging the OpenAI Compatible package.
We provide detailed documentation for the following OpenAI compatible providers:
LM Studio NIM Heroku ClarifaiThe general setup and provider instance creation is the same for all of these providers.
Sunday, April 12, 2026
video-dev/hls.js: HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
HLS.js is a JavaScript library that implements an HTTP Live Streaming client. It relies on HTML5 video and MediaSource Extensions for playback.
It works by transmuxing MPEG-2 Transport Stream and AAC/MP3 streams into ISO BMFF (MP4) fragments. Transmuxing is performed asynchronously using a Web Worker when available in the browser. HLS.js also supports HLS + fmp4, as announced during WWDC2016.
HLS.js works directly on top of a standard HTML element.