
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
Vanilla JS Lazy Show Library
install via npm:
npm install ldlazy
include the required files:
<link rel="stylesheet" type="text/css" href="path-to-dist/index.min.css">
<script type="text/javascript" src="path-to-dist/index.min.js"></script>
construct a ldlazy object:
ldlz = new ldlazy({root: document.body, toggle: function(n) { ... } });
ldlz.add( ... );
root - root element for monitoring scroll.toggle - when visibility changes, toggle will be called with the target node as param. default null.debounce - millisecond delay before handling events. require debounce.js, otherwise will be ignored.ldlz.add(n) - start monitoring node n for visibility change.ldlz.remove(n) - stop monitoring node n for visibility change.To make it easier to add an ldlazy image tag, we offer a pug mixin with a minimized gif placeholder, which can be used as:
include path-to-dist/index.pug
+ldlz("your-file")( ...attributes... )
An example with @plotdb/srcbuild:
include @/ldlazy/dist/index.pug
+ldlz("thumbnail.png").custom-cls(width="800px",height="600px",alt="thumbnail")
which generates following html:
<img class="ldlz clustom-cls" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="thumbnail.png" width="800px" height="600px" alt="thumbnail">
ldlazy controls the visibility of an element based on the event from IntersectionObserver. Two styles will be touched:
visibilityopacityAlternatively, you can specify a source url for showing / lazy loading an image when the element becomes visible. Use src or data-src (for lazy loading ) attributes to indicate image url:
<div src=""></div>
<img data-src="...">
ldlazy fill the corresponding field ( style.backgroundImage for div, src for img ) when the element is visible.
Additionally, specify following css class over an element for additional effect:
nocache: always load this image with a randomized querystring, which forcily disable the cache.
placeholder: insert a invisible placeholder image with given URL inside this node.
init(): ask ldlazy to scan and init all elements with ldlz classes.When using with img tag, you may want to fill following attributes to prevent CLS - Cumulative Layout Shift:
width and height: set to the expected size of your image.
src: you can still fill src attribute with a 66 bytes long, single pixel, transprent gif:
data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEAAAAALAAAAAABAAEAAAIAldlz in Pug after including dist/index.pug, with src as only parameter:+ldlz("path-to-your-image")(additional-attribute="here", ...)
Placeholder image prefilled in src attribute can prevent a broken image or alt attribute to be shown. While we may prefer transparent placeholder image, ldlazy actually make elements transparent before revealing them so we actually don't need a real transpareny pixels.
Here are some possible smallest images, with their corresponding sources:
smallest 1px gif (26bytes/58bytes, currently used), may be shown as black in some browsers (e.g., IE11):
data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=
smallest transparent 1px gif (33bytes/66bytes):
data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEAAAAALAAAAAABAAEAAAIA
alternative with SVG (41bytes/60bytes)
data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/>
check following pages for more resources about a minimal image:
MIT
FAQs
Vanilla JS Lazy Show Library
We found that ldlazy demonstrated a not healthy version release cadence and project activity because the last version was released 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.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.