
Research
/Security News
10 npm Typosquatted Packages Deploy Multi-Stage Credential Harvester
Socket researchers found 10 typosquatted npm packages that auto-run on install, show fake CAPTCHAs, fingerprint by IP, and deploy a credential stealer.
@status/label-maker
Advanced tools
Continuous label generator
npm install @status/label-maker
or
yarn add @status/label-maker
Generate endless labels with @status/label-maker:
import { LabelMaker, labelMaker } from '@status/label-maker';
const labeler: LabelMaker = labelMaker('foo')('bar');
expect(labeler('baz').toString()).to.equal('foo|bar|baz');
Default delimiter is | but is easily changed:
const labeler: LabelMaker = labelMaker('foo', ':')('bar', '>')('baz', {
includeFinalDelimiter: true,
delimiter: '\t',
});
expect(`${labeler('qux', '|')}`).to.equal('foo:bar>baz qux|');
Passing a label: (string) as first parameter is required. You may optionally provide an alternate delimiter: (string) as a second parameter, or an object with the properties described below.
afterAdd a segment to the label after the specified position. Returns a new label maker.
const labeler: LabelMaker = labelMaker('foo')('bar').after(0, 'baz');
expect(labeler('qux').toString()).to.equal('foo|baz|bar|qux');
atAdd a segment to the label at the specified position. Returns a new label maker.
const labeler: LabelMaker = labelMaker('foo')('bar').at(1, 'baz');
expect(labeler('qux').toString()).to.equal('foo|baz|bar|qux');
beforeAdd a segment to the label before the specified position. Returns a new label maker.
const labeler: LabelMaker = labelMaker('foo')('bar').before(1, 'baz');
expect(labeler('qux').toString()).to.equal('baz|foo|bar|qux');
clearClear the label. Returns a new label maker.
const labeler: LabelMaker = labelMaker('foo')('bar').clear();
expect(labeler('qux').toString()).to.equal('');
getGet the Label object at the specified position.
const labeler: LabelMaker = labelMaker('foo')('bar');
expect(labeler('baz').get(1)).to.deep.equal({
label: 'bar',
delimiter: '|',
appendDelimiter: '',
prependDelimiter: '',
includeEmptySegments: false,
includeFinalDelimiter: false,
includePrependedDelimiter: false,
});
labelsRetrieves all the label objects.
const labeler: LabelMaker = labelMaker('foo')('bar');
const labels: Label[] = labeler('baz').labels();
expect(labels).to.have.lengthOf(3);
removeRemove a segment from the label at the specified position. Returns a new label maker.
const labeler: LabelMaker = labelMaker('foo')('bar').remove(1);
expect(labeler('qux').toString()).to.equal('foo|qux');
replaceReplace a segment in the label at the specified position. Returns a new label maker.
const labeler: LabelMaker = labelMaker('foo')('bar').replace(1, 'baz');
expect(labeler('qux').toString()).to.equal('foo|baz|qux');
appendDelimiterSupply a final delimiter to use at the end of the label.
const labeler: LabelMaker = labelMaker('foo', ':')('bar', '>')('baz', {
appendDelimiter: '|',
});
expect(labeler('qux').toString()).to.equal('foo:bar>baz>qux|');
delimiterDelimiter to use between label segments. Default is |. Can vary between segments.
const labeler: LabelMaker = labelMaker('foo', ':')('bar', '>')('baz', {
delimiter: '\t',
});
expect(labeler('qux').toString()).to.equal('foo:bar>baz qux');
includeFinalDelimiterInclude final delimiter in the label. Default is false. Will use last provided value. Is set to true if appendDelimiter is provided.
const labeler: LabelMaker = labelMaker('foo', ':')('bar', '>')('baz', {
includeFinalDelimiter: true,
});
expect(labeler('qux').toString()).to.equal('foo:bar>baz>qux>');
prependDelimiterDelimiter to use before first segment.
const labeler: LabelMaker = labelMaker('foo', ':')('bar', '>')('baz', {
prependDelimiter: '|',
});
expect(labeler('qux').toString()).to.equal('|foo:bar>baz>qux');
includePrependedDelimiterInclude delimiter before first segment. Default is false. Is set to true if prependDelimiter is provided.
const labeler: LabelMaker = labelMaker('foo', ':')('bar', '>')('baz', {
includePrependedDelimiter: true,
});
expect(labeler('qux').toString()).to.equal('>foo:bar>baz>qux');
FAQs
Generate endless labels
We found that @status/label-maker demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers 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
/Security News
Socket researchers found 10 typosquatted npm packages that auto-run on install, show fake CAPTCHAs, fingerprint by IP, and deploy a credential stealer.

Product
Socket Firewall Enterprise is now available with flexible deployment, configurable policies, and expanded language support.

Security News
Open source dashboard CNAPulse tracks CVE Numbering Authorities’ publishing activity, highlighting trends and transparency across the CVE ecosystem.