
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
The ZPL language is used to pass data to Zebra thermal printers, which are commonly used to print receipts. In the case of this module, the principle focus is printing a food label based on a set of input data.
In terminal, in the same directory as your node_modules directory:
npm install zplify --save
In your module:
(function() {
const zplify = require('zplify');
// your code here
})();
The main method to be used is generateTable, which takes an object with 2 properties:
rows - a matrix (array of arrays), in which each entry corresponds to a table rowconfig - an object containing properties for modifying the default formattingIt is assumed that the first item in the rows array will an array of column titles,
which receive slightly different styling than the rest of the rows.
zplify.generateTable({
rows: [
['col1', 'col2'],
['row1col1', 'row1col2']
],
config: {
columnRatios: [.3, .7]
}
});
// returns a table with 2 rows and 2 columns, where row contains the column names
columnRatios
type: Array
default: [] (evaluates to evenly spaced columns)
description: specifiy custom widths for the table columns
notes:
columns arrayexample:
zplify.generateTable({
rows: [
['id', 'name', 'qty', 'price'],
['1', 'Delicious Dog Food', '2', '42']
],
config: {
columnRatios: [.1, .7, .1, .1] // same number of values as the first row
}
});
labelWidth
type: Number
unit: inches
default: 4
descripton: specify the total width of the label
notes:
labelHeight
type: Number
unit: inches
default: 6
description: specify the total height of the label
notes:
printDensity
NumberDPI (dots per inch)203 (8 dpmm)labelPadding
Numberdots50borderWidth
Numberdots3fontSize
Numberdots30maxRowHeight
NumberdotsfontSize (so, 60 dots; see above)rowHeight
NumberdotsmaxRowHeight (so, 60 dots; see above)cellPadding
Numberdots20To see how the table you generated looks, you can use Labelary.
ZPL II is not backwards compatable with ZPL I [1], which is to say that an interpreter expecting ZPL II code will not necessarily return the correct results given an input in the ZPL I format. As such, I've elected to use the more recent version, ZPL II.
I may choose to add more features in following versions. If you'd like to request a feature, please reach out to zplify@ajdebeer.com. Here are some I'm thinking might be useful:
Learn more about the Zebra programming language here:
FAQs
Generate a table in ZPL format based on a simple set of inputs
The npm package zplify receives a total of 2 weekly downloads. As such, zplify popularity was classified as not popular.
We found that zplify 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
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.