Security News
Supply Chain Attack Detected in Solana's web3.js Library
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Execute CLI Statements based upon opt-in / out-out Rules.
Simply install locally as a development dependency to your project's package:
npm install --save-dev opt-cli
Opting in/out of a configured tasks, best use case is for ghooks. This discussion is the main motivation behind this module.
You can check out the eslint-find-new-rules/package.json for reference.
opt --in
"config": {
"ghooks": {
"pre-commit": "opt --in pre-commit --exec 'npm run validate'"
}
},
While commit
ing, npm run validate
will not be executed by default.
However, one can opt in by creating a .opt-in
file in the root of the project, with the content pre-commit
.opt-in
Each line in the .opt-in
file, is the keyword used after the opt --in
rule.
So for the above example, it's pre-commit
cat .opt-in
# "ghooks": {
# "pre-commit": "opt --in pre-commit --exec 'npm run validate'"
# }
pre-commit # the keyword used after the opt --in command
opt --out
opt --out
works exactly, the opposite way of opt --in
.
"config": {
"ghooks": {
"pre-commit": "opt --out pre-commit --exec 'npm run validate'"
}
},
In this case, npm run validate
will be executed before any changes can be commit
ed.
In order to opt out, you have to create a .opt-out
file in the root of the project, with the content pre-commit
.opt-out
Similar to .opt-in
file, each line in .opt-out
file, is the keyword used after the opt --out
rule.
So for the above example, it's pre-commit
cat .opt-out
# "ghooks": {
# "pre-commit": "opt --out pre-commit --exec 'npm run validate'"
# }
pre-commit # the keyword used after the opt --out command
.gitignore
to ignore this file.opt-in
, opt-out
files can contain multiple rules#
can be used to comment any rule.You may also include opt-cli as a library:
var opt = require( 'opt-cli' );
Given the example setup from above, usage would be as follows:
opt.testOptIn( 'pre-commit' ) === true
opt.testOptOut( 'pre-push' ) === true
Using opt.getExplicitOpts()
you would receive:
{
'pre-commit': true,
'pre-push': false
}
Rules to opt-into or opt-out of can also be specified using ...
in
or out
array of a package.json
's config.opt
field:"config": {
"opt": {
"in": [ "pre-commit" ],
"out": [ "pre-push" ]
}
},
OPT_IN
and OPT_OUT
:# Delimit multiple rules with ":" on *nix / ";" on Win
export OPT_IN="pre-commit"
export OPT_OUT="pre-push"
Kent C. Dodds 💻 👀 | Guilherme J. Tramontina 💻 | Andreas Windt 💻 📖 ⚠️ | Sarbbottam Bandyopadhyay 📖 |
---|
This project follows the all-contributors specification (emoji key). Contributions of any kind welcome!
Special thanks to @kentcdodds for encouraging to engage in oss, for the wonderful resources (check out the Egghead videos!) and — together with gtramontina — for coming up with the original idea to this module!
FAQs
Execute CLI Statements based upon Opt-In / Opt-Out Rules.
We found that opt-cli 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
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.