---
title: "Single executable apps come to Node core"
publication: "Node Weekly"
issue: 475
published_at: "2023-02-23"
canonical_url: "https://nodeweekly.com/issues/475"
---

Plus speed running creating an npm package properly, Node 19.7.0 lands Node's new URL parser, and a (type) safer world for MongoDB queries. |        

#​475 — February 23, 2023 

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

Together with [![Pangea logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto/e_make_transparent/co_white,e_outline:7/vdxvaq0osr46vwyw8hkt.png)](https://pangea.cloud/resources/technologies/?utm_medium=display&utm_source=cooperpress&utm_campaign=node-weekly-feb) 

![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/jinpsstzbia8csdchlyj.jpg)](https://www.youtube.com/watch?v=OIrGEgMwPvc)  

▶[The State of Node.js Core with Colin Ihrig](https://www.youtube.com/watch?v=OIrGEgMwPvc) — Colin sits on the Node.js Technical Steering Committee (TSC) and gives us a 30-minute presentation reviewing what’s going on and some potential upcoming features (including a permissions system, better TypeScript integration, proxy support for `fetch` and more promisified core modules). 

This Dot Media   

[Node v19.7.0 (Current) Released](https://nodejs.org/en/blog/release/v19.7.0/) — Two key updates: [npm v9.5.0](https://github.com/npm/cli/releases/tag/v9.5.0), and the new [Ada](https://github.com/ada-url/ada/releases/tag/v1.0.0) WHATWG-compliant URL parser we mentioned two weeks ago is now in play (with [up to 87% faster](https://github.com/ada-url/ada/issues/142#issuecomment-1407732727) URL parsing), 

Myles Borins   

[Node 18.4.2 (LTS)](https://nodejs.org/en/blog/release/v18.14.2/) has also been released with npm 9.5 and updates to both V8 and the Undici HTTP client.  [![\](https://copm.s3.amazonaws.com/780a4760.jpg)](https://pangea.cloud/resources/technologies/?utm_medium=display&utm_source=cooperpress&utm_campaign=node-weekly-feb) 

[Add Pangea’s Security Services to Your Node App - Start Free](https://pangea.cloud/resources/technologies/?utm_medium=display&utm_source=cooperpress&utm_campaign=node-weekly-feb) — Get the APIs to deliver a secure user experience in one place! Comply with SOC2 (Secure Audit Log), strip out PII (Redact), comply with export restrictions (Embargo), and block known threat actors (File, Domain, IP, URL Threat Intelligence). Start for free 

Pangea sponsor   

[Node v19.7.0's Single Executable Applications Support](https://nodejs.org/api/single-executable-applications.html) — I told a half truth above, there are _three_ neat things in Node 19.7. The third is experimental and significant enough to require its own item. With the right incantations, you can **package a Node app along with the Node executable itself** for easier distribution. I struggled to get it working and the resulting executable will be over 80MB in size, but it’s early days :-) 

Node.js Documentation   

**IN BRIEF:** 

- As expected last week, [several Node.js releases dropped](https://nodejs.org/en/blog/vulnerability/february-2023-security-releases/) to resolve some security issues, namely Node 14.21.3, 16.19.1, 18.14.1 and [19.6.1](https://nodejs.org/en/blog/release/v19.6.1/).
- GitHub has [streamlined the npm password reset flow](https://github.blog/changelog/2023-02-21-improved-password-reset-flow-for-npm/).
- CodeSandbox has unveiled [Sandpack 2.0 which includes a fast Node runtime for the browser.](https://codesandbox.io/blog/announcing-sandpack-2) There's a lot of moving parts here, but in short it opens up a lot of potential for running live demos and interactive docs on the Web all within the browser. Check out the demos in the post itself.
- The OpenJS Foundation has posted its latest [Node.js security progress report](https://openjsf.org/node-js/2023/02/21/node-js-security-progress-report-openssf-grant-renewed-for-2023-new-ecosystem-focus/) covering January 2023.   

▶[The NPM Library Creation Speedrun](https://www.youtube.com/watch?v=aKTSC4D1GL8) — Social media’s most famous TypeScript developer right now takes just 90 minutes to build, CI, and publish a complete npm package. You _could_ do it faster, of course, but he takes a thorough approach with testing, TypeScript, writing a README and actually building something useful. _(Note: He actually starts [around the 17-minute mark](https://youtu.be/aKTSC4D1GL8?t=1026) in the video.)_ 

Matt Pocock   

Prefer [▶️ a 3-minute primer](https://www.youtube.com/watch?v=eh89VE3Mk5g) to publishing an npm package with the latest tools? Matt's got you covered there, too.  

[Building a Simple CLI Tool with Modern Node.js](https://evertpot.com/node-changelog-cli-tool/) — Starting from scratch, with no boilerplate. 

Evert Pot   

[React Authentication, Simplified](https://userfront.com/tutorials/react-authentication?utm_source=nodeweekly.com&utm_medium=newsletter&utm_campaign=sponsored_link&utm_content=react_authentication) — In this article, we lay out a new approach to authentication (plus access control & SSO) in React applications. 

Userfront sponsor   

[Task Queuing the Easy Way with Node and BullMQ](https://www.makeuseof.com/task-queuing-nodejs-bullmq/) — Why do something immediately if you can put it off until later? Message queuing isn’t for the lazy though—it can help make your app more responsive. 

Timilehin Omolana    

🛠 Code & Tools  

[Papr 11.0: Making the World (Type) Safe for MongoDB Queries](https://medium.com/plexlabs/making-the-world-type-safe-for-mongodb-queries-papr-v11-46266bb87594) — Papr is a TypeScript wrapper around the usual MongoDB Node.js driver that uses JSON schema validation to improve type safety. This post explains how it has recently been enhanced. [GitHub repo.](https://github.com/plexinc/papr) 

Plex   

[NodeGUI: Build Native Cross-Platform Desktop Apps with Node.js](https://github.com/nodegui/nodegui) — Unlike Electron which leans upon webviews and HTML, NodeGui uses a Qt based approach. Last week’s [0.58.0 release](https://github.com/nodegui/nodegui/releases/tag/v0.58.0) was the first stable release based on Qt 6 and offering high DPI support. 

NodeGui   

[Need to Upgrade Node? We Open Sourced `depngn` to Help with That 🛠️](https://www.upgradejs.com/blog/nodejs/upgrade/introducing-depngn.html?utm_source=cooperpress&utm_medium=node-weekly&utm_campaign=feb-17-2023&utm_term=depngn&utm_content=open-source) 

UpgradeJS.com: JavaScript Upgrade Services sponsor   

[DOMPurify 3.0: Fast, Tolerant XSS Sanitizer for HTML and SVG](https://github.com/cure53/DOMPurify) — A project that’s nine years old and still actively developed. Supports all modern browsers (IE support was only _just_ dropped) and is heavily tested. There’s [a live demo here.](https://cure53.de/purify) 

Cure53   

[Bridge Mongo: A Fully-Typed Mongoose ODM](https://mongo.bridge.codes/) — It must be the week for people bringing typing to MongoDB. Bridge Mongo takes the approach of sitting atop the Mongoose ODM while providing full type-safety and auto-completion. [GitHub repo.](https://github.com/bridge-codes/bridge-mongo) 

Bridge   

- [oclif 3.7](https://github.com/oclif/oclif)
 ↳ Node.js open CLI app framework.
- [LDAPjs 3.0](https://github.com/ldapjs/node-ldapjs)
 ↳ LDAP client and server API.
- [ics 3.1](https://github.com/adamgibbons/ics)
 ↳ iCalendar (ics) file generation.
- [Unfurl 6.2](https://github.com/jacktuck/unfurl)
 ↳ Metadata scraper with oEmbed and Open Graph support.
- [Article Extractor 7.2.9](https://github.com/extractus/article-extractor)
 ↳ Extract the article from a given URL.
- [node-chatgpt-api 1.20](https://github.com/waylaidwanderer/node-chatgpt-api)
 ↳ Client implementation for ChatGPT and Bing GPT.
- [pg-promise 11.3](https://github.com/vitaly-t/pg-promise)    

💻 Jobs  

[Software Engineer (Backend)](https://jobs.ashbyhq.com/stickermule/477eed3e-4aae-46e6-a8ab-0646dbfb11cd?utm_source=Cooperpress) — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers. 
Sticker Mule   

[Senior Backend Engineer (Remote)](https://weworkremotely.com/remote-jobs/tempmee-senior-backend-developer) — Change the way the world works together with us. We are looking for developers to extend our team. 
TempMee   

[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=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired      

👾 Letting Node Play Your Games 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wlcftcd701yrcyvitigc.jpg)](https://github.com/samneisewander/haydayautomation)   

[A Node Script That Plays 'Hay Day'](https://github.com/samneisewander/haydayautomation) — [Hay Day](https://hayday.com/en) is a mobile ‘virtual farming’ game and like many such games, it seems to involve a lot of [grinding](https://en.wikipedia.org/wiki/Grinding_%28video_games%29) to progress. Sam has used Node to bring together some OCR, screenshotting, and calling out to AutoHotKey to play the more boring parts of the game – techniques you might be find useful to try elsewhere, perhaps. There are [▶️ some clips of it in action](https://www.twitch.tv/chubzhasrisen/clips?filter=clips&range=30d) on Twitch. 

Sam Neisewander    

**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|*)
