---
title: "Automating the desktop with Node"
publication: "Node Weekly"
issue: 471
published_at: "2023-01-26"
canonical_url: "https://nodeweekly.com/issues/471"
---

Plus Node 19.5, Eleventy 2.0 beta, and Deno's access to built-in Node modules. |        

#​471 — January 26, 2023 

[Read on the Web](https://nodeweekly.com/issues/471)  

Together with [![Memetria\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_600,h_145/e_make_transparent/co_white,e_outline:7/vvpdctzacmq3xehpvwps.png)](https://dashboard.memetria.com/nodeweekly) 

![Node.js Weekly](https://res.cloudinary.com/cpress/image/upload/v1653576619/lgfqinzbdqttwmhvljxb.png) 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/u1pkbbgzsl4ht810hota.jpg)](https://nutjs.dev/)  

[Nut.js 3.0: Use Node for Desktop Automation](https://nutjs.dev/) — Take control of your desktop environment (Windows, macOS or Linux) from code with control over keyboard and pointer, plus you get some image matching possibilities too. Open source but with optional sponsor-only extension packages. [GitHub repo](https://github.com/nut-tree/nut.js) and [what's new in v3.0.](https://nutjs.dev/blog/release300) 

Simon Hofmann   

[Building Reliable Distributed Systems in Node](https://temporal.io/blog/building-reliable-distributed-systems-in-node) — This post introduces the concept of _durable execution_ which is used by a variety of companies and services to run reliable distributed systems. [_Temporal_](https://temporal.io/) is a platform that coordinates workflows and durable jobs built around them. 

Loren Sands-Ramshaw   [![\](https://copm.s3.amazonaws.com/263d97b1.png)](https://dashboard.memetria.com/nodeweekly) 

[Memetria: Secure, Scalable, Full-Featured Redis 7 Hosting](https://dashboard.memetria.com/nodeweekly) — The latest Redis features, instrumented and scaled with the tools teams need as they grow. 

Memetria sponsor   

**IN BRIEF:** 

- [Node v19.5.0 (Current)](https://nodejs.org/en/blog/release/v19.5.0/) has been released, though with few changes of note. Lots of little tweaks, fixes, and dependency updates.
- [Deno 1.30](https://deno.com/blog/v1.30) has been released with first-class support for _built-in_ Node.js modules (e.g. `fs` or `process`).   

[Unlocking Security Updates for Transitive Dependencies with npm](https://github.blog/2023-01-19-unlocking-security-updates-for-transitive-dependencies-with-npm/) — Dependabot is a GitHub-based service that issues pull requests updating known vulnerable _direct_ dependencies on projects. But what about _transitive_ dependencies? If you’re using npm, [that’s possible too](https://github.blog/changelog/2022-09-07-dependabot-unlocks-transitive-dependencies-for-npm-projects/) (since September last year). This post digs more into how it works. 

Bryan Dragon (GitHub)   

[First Beta of Eleventy v2.0 Released](https://www.11ty.dev/blog/eleventy-v2-beta/) — [Eleventy](https://www.11ty.dev/) is a popular Node-powered static site generator (and now sponsored full-time by Netlify) and v2.0 includes enough major changes that a thorough beta stage is needed. Zach [▶️ speaks more about this release here](https://www.youtube.com/watch?v=TcTR0TLqM3I). 

Zach Leatherman   

[Observability Made Affordable](https://ter.li/sg59ij) 

TelemetryHub by Scout sponsor   

[Packaging _Rust_ Apps for the npm Registry](https://blog.orhun.dev/packaging-rust-for-npm/) — Isn’t npm just for Node or JavaScript stuff? Surprisingly not. Node is required to make this technique work, but as long as you can package and execute a binary, you’re good to go. 

Orhun Parmaksız   

[You Might Not Need An ORM](https://sometechblog.com/posts/you-might-not-need-an-orm/) — Where the author moves _away_ from Prisma. 
Some Tech Blog    

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/flujjwpgrwkcmo7byudz.jpg)](https://nodeshift.dev/opossum/)  

[Opossum 7.1: A Circuit Breaker for Async Functions](https://nodeshift.dev/opossum/) — You can do things like trigger a failure after a certain timeout, fail entirely if a certain error threshold is reached, etc. [GitHub repo](https://github.com/nodeshift/opossum). 

Red Hat   

[s3fs: Drop-In AWS S3 Backed `fs` Replacement](https://github.com/cyclic-software/s3fs) — Supports methods like `writeFile`/`writeFileSync`, `readFile`/`readFileSync`, `rm`, `mkdir`, etc. but working upon S3 rather than the local file system. 

Cyclic   

[Tuple, a Lightning-Fast Pairing Tool Built for Remote Developers](https://tuple.app?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=sponsorship-blitz&utm_content=Node+Weekly_Sponsored+Link) — High-resolution, crystal-clear screen sharing, low-latency remote control, and less CPU usage than you'd think possible. 

Tuple sponsor   

[Jazzer.js: Coverage-Guided, In-Process Fuzzing for Node](https://github.com/CodeIntelligenceTesting/jazzer.js) — Instrumentation-powered mutation for the JavaScript ecosystem by way of [libFuzzer.](https://llvm.org/docs/LibFuzzer.html) This week’s [v1.2 release](https://github.com/CodeIntelligenceTesting/jazzer.js/releases/tag/v1.2.0) adds support for libFuzzer’s fork mode. 

Code Intelligence   

[Modern Errors: Handle Errors in a Simple, Stable, Consistent Way](https://github.com/ehmicky/modern-errors) — Create error classes, wrap or aggregate errors, or use one of several plugins to do things like print bug reporting info, print stack traces, or more. Happy in both Node and the browser. 

ehmicky   

[Mock Service Worker 1.0: API Mocking Library for Browser and Node](https://mswjs.io/) — Intercepts requests which you can then mock. Capture outgoing requests using an Express-like routing syntax, complete with parameters, wildcards, and regexes. [GitHub repo](https://github.com/mswjs/msw). 

Artem Zakharchenko   

- [Mongoose 6.9](https://mongoosejs.com/)
 ↳ MongoDB object data modeling.
- [Haraka 3.0.1](https://github.com/haraka/Haraka)
 ↳ Extensible SMTP / email server.
- [Nave 3.5](https://github.com/isaacs/nave)
 ↳ Virtual environments for Node.
- [Rimraf 4.1.2](https://github.com/isaacs/rimraf)
 ↳ Elaborate `rm -rf` from Node.
- [Fastify 4.12](https://github.com/fastify/fastify)
 ↳ Fast, low overhead web framework.
- [Strapi 4.6](https://github.com/strapi/strapi)
 ↳ Headless Node.js-powered CMS.
- [Node-Redis 4.6](https://github.com/redis/node-redis)
 ↳ Redis client library.
- [Node USB 2.7](https://github.com/node-usb/node-usb)
 ↳ Improved USB library for Node.    

💻 Jobs  

[Backend Engineer, TypeScript (Berlin / Remote)](https://feather-insurance.com/careers/senior-backend-engineer?channel_id=921907) — Thousands of people love our product (see Trustpilot for yourself). Join the team behind it and help us scale. 🚀 
Feather   

[Find Tech Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-nodeweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired       

🕰 **ICYMI** _(Some older stuff that may catch your eye...)_ 

- Manually installing different versions of Node? [Max Rozen says there's a _much_ better way](https://maxrozen.com/managing-your-node-installation). Well, _four_ ways, even.
- Florian Rappl looks at [how to build a secure API gateway](https://snyk.io/blog/how-to-build-secure-api-gateway-node-js/) atop Express.
- James Walker shares an [introduction to `worker_threads`](https://snyk.io/blog/node-js-multithreading-with-worker-threads/) for doing some multithreading.
- Ariel Weinberger [highlights four common mistakes](https://amplication.com/blog/4-common-mistakes-made-by-nodejs-developers) Node developers make.    

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

**Sponsorship:** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Cancel your subscription](https://nodeweekly.com/leave/*|UID|*) or [change your address.](https://nodeweekly.com/edit_subscription/*|UID|*)
