Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
asana-phrase
Advanced tools
A random phrase generator used to create memorable error codes, as used by Asana.
Install with npm:
npm install asana-phrase --save
Include the latest release directly from GitHub.
<script src="https://github.com/Asana/node-asana-phrase/releases/download/<LATEST_RELEASE>/asana-phrase-min.js"></script>
OR
SCRIPT
tag.This package is designed to convert large numbers (like IDs) into human-readable phrases, which are more entertaining and memorable, and suitable for error codes.
The package can support conversion of numbers of arbitrary length if represented as a hex string, as well as integers up to 53 bits. The default phrase factory provided converts 32-bit numbers, but custom ones can be created to work with larger bit sizes.
It operates on a simple bitwise substitution principle, so given a particular phrase factory, there is a deterministic way to map any set of bits into a phrase and vice versa.
If you just want 32-bit numbers translated to phrases in the same way Asana does, you can use the default phrase factory.
var phrase = require('asana-phrase');
phrase.default32BitFactory().randomPhrase();
>>> ["6", "sad", "squid", "snuggle", "softly"]
If you want to customize the generated phrases (or create ones with a larger
bit space), you can very easily add your own word generators.
There are two predefined types of word generator: Dictionary
and NumberRange
,
which you can plug into the Factory
to make your own combinations. You can
also access the dictionaries that comprise the default phrase factory so you
can leverage it in your custom factory:
var factory = new phrase.Factory([
new phrase.Dictionary(phrase.dictionaries.subjects),
new phrase.Dictionary(phrase.dictionaries.verbs),
new phrase.Dictionary(["with", "against", "for", "around"]),
new phrase.Dictionary(phrase.dictionaries.subjects)
]);
factory.randomPhrase();
>>> ["trout", "behave", "around", "sharks"]
If you want some logic that isn't based on making sequential numbers or
choosing words from a dictionary, it's very easy to make your own word generator.
Simply subclass WordGenerator
and fulfill its simple contract.
FAQs
Random error phrase generator used by Asana
The npm package asana-phrase receives a total of 1,123 weekly downloads. As such, asana-phrase popularity was classified as popular.
We found that asana-phrase 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
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.