Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
juicy-repl
Advanced tools
An extensible JavaScript REPL
juicy-repl
globally and host it on your machine, tell it which packages to include, and in less than a minute you have a custom REPL running locally.Install juicy-repl
# with npm
npm install -g juicy-repl
# with yarn
yarn global add juicy-repl
Example 1: out of the box quick start
juicy
Example 2: with command line args
juicy --port 80 --detach false --processTitle "custom-repl" --replPageTitle "My Custom REPL" --hideHeader true
Example 3: with config file
juicy --config "~/REPL_CONFIG.json"
Example 4: with config file added environment variables
# add to ~/.bash_profile
export JUICY_CONFIG=~/REPL_CONFIG.json
juicy
Install juicy-repl
# with npm
npm install --save juicy-repl
# with yarn
yarn add juicy-repl
const juicy = require('juicy-repl');
// supply any, all, or no options
const options = { ... };
juicy(options)
.then((app) => {
// extend express app
app.get('/custom/api', res.json({ data: 'custom' }));
});
{
packages: [
'ramda',
'joi',
'lodash',
'bluebird',
'moment',
'uuid'
],
aliases: {
ramda: [
'R',
'Ramda'
],
lodash: [
'_'
],
bluebird: [
'Promise'
]
},
configPath: null,
port: 3000,
detach: true,
processTitle: 'juicy-repl',
replPageTitle: 'Juicy REPL',
gaid: null,
hideHeader: false,
spinnerPath: null,
spinnerBgColor: null,
faviconPath: null,
headerLogoPath: null,
headerTitle: null,
headerSubtitle: 'A JavaScript REPL that feels like an IDE',
headerColor: null,
headerFontColor: null
};
Type: Array<String>
Description: A list of npm packages to include when building the REPL.
Default value:
[
'ramda',
'joi',
'lodash',
'bluebird',
'moment',
'uuid'
]
Type: Object<String, Array<String>>
Description: Specify one or more aliases to expose as global variables for the packages.
Default value:
{
ramda: [
'R',
'Ramda'
],
lodash: [
'_'
],
bluebird: [
'Promise'
]
}
Type: String
Description: Absolute path to config file.
Default value: null
Command Line: --configPath '~/REPL_CONFIG.json'
Type: Number
Description: The port number the REPL server will be exposed on.
Default value: 3000
Command Line: --port 80
Type: Boolean
Description: If true, then the REPL server will detach into a child process and allow the main process to exit. Otheriwse the main process will suspend while the REPL server is running. It is suggested to set detach
to false
if using nohup
or a process manager such as forever
or pm2
.
Default value: true
Command Line: --detach false
Type: String
Description: The process.title
for the REPL server process.
Default value: 'juicy-repl'
Command Line: --processTitle 'my-custom-repl'
Type: String
Description: The document.title
for the REPL browser app.
Default value: 'Juicy REPL'
Command Line: --replPageTitle 'My REPL'
Type: String
Description: Google Analytics ID. If set, then google analytics script is added to the page.
Default value: null
Command Line: --gaid 'UA-112996224-1'
Type: Boolean
Description: If true, then the header of the REPL will be hidden.
Default value: false
Command Line: --hideHeader true
Type: String
Description: Set to absolute path of image to loading spinner.
Default value: null
Command Line: --spinnerPath '/Users/myuser/images/spinner.gif'
Type: String
Description: If set, then the spinner will have a circular background filled with this color
Default value: null
Command Line: --spinnerBgColor '#FFFFFF'
Type: String
Description: Set to absolute path of image to override the favicon.
Default value: null
Command Line: --faviconPath '/Users/myuser/images/favicon.ico'
Type: String
Description: Set to absolute path of image to override logo in header.
Default value: null
Command Line: --headerLogoPath '/Users/myuser/images/my-repl-logo.png'
Type: String
Description: Overrides the title in the header. Use 'none' to hide the title.
Default value: null
Command Line: --headerTitle 'My REPL'
Type: String
Description: The subtitle in the header. Use 'none' to hide the subtitle.
Default value: 'A JavaScript REPL that feels like an IDE'
Command Line: --headerSubtitle 'powered by Juicy'
Type: String
Description: If set, overrides the backgorund color of the header.
Default value: null
Command Line: --headerColor '#FF0000'
Type: String
Description: If set, overrides the font color of the header.
Default value: null
Command Line: --headerFontColor '#FFFFFF'
git clone https://github.com/djorg83/juicy
cd juicy
yarn dev
FAQs
An extensible JavaScript REPL
The npm package juicy-repl receives a total of 0 weekly downloads. As such, juicy-repl popularity was classified as not popular.
We found that juicy-repl 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
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.