
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
impression.js
Advanced tools

Element impression, for ads or user behaviour statistics.
Written in es6 javascript, published as npm package as es5 along with a browser standalone.
IE9+, chrome, safari, firefox, opera...
npm install impression.js
<script src="./bundle/index.webpack.js"></script>
<script src="./bundle/index.rollup.js"></script>
import Impression from 'impression.js';
let impression = new Impression();
let element = document.querySelector('#test');
impression.isViewable(element); // => true
impression.on('begin', '#test', (element) => {
console.log(`element shown into view`, element);
});
impression.on('end', '#test', (element) => {
console.log(`element shown out of view`, element);
});
Impression => {Impression}const impression = new Impression(options)
isViewable => {Boolean}impression.isViewable(element)
Only accepts a single element.
on => {Impression}impression.on(event, selector, callback)
callback(element, { type, direction })
off => {Impression}impression.off(event, selector, callback)
impression.off(event, selector)
impression.off(event)
impression.off()
once => {Impression}impression.once(event, selector, callback)
attach => {Impression}impression.attach()
detach => {Impression}impression.detach()
onObservers => {Impression}impression.onObservers(type, callback)
onceObservers => {Impression}impression.onceObservers(type, callback)
offObservers => {Impression}impression.offObservers(type, callback)
impression.offObservers(type)
impression.offObservers()
The number of pixels an element is allowed to enter its container boundaries before calling its callback.
default 0
The number of milliseconds to wait before calling an element's callback after the changes.
default 100
The container of the elements you want to track.
default window
impression.on('begin', '[data-impression-uniqueid="1"]', (element, { type }) => {
// => which element begins to impression
// => the cause of the change
});
impression.on('end', '[data-impression-uniqueid="1"]', (element, { type }) => {
// => which element's impression ends
// => the cause of the change
});
FAQs
impression
We found that impression.js 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.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.